2011-11-13 53 views
7

Tôi có một số vấn đề để hiểu nosql. Im sử dụng mongodb và java và muốn tạo ra một cái gì đó như thế: một bảng (người) với một cột cho tên (như chuỗi), tuổi (như số nguyên), kết hôn (boolean). Trong một sql bình thường nó sẽ được dễ dàng ... nhưng làm thế nào để đi về với mongodb và java?SQL bảng để nosql (MongoDB) - ví dụ dễ dàng

Ok công cụ tôi biết: một bảng trong mongodb là một bộ sưu tập và một cột là một trường BSON. Tôi sẽ bắt đầu như thế này

 Mongo m = new Mongo(); 
     DB db = m.getDB("myDatabase"); 
     DBCollection col = db.getCollection("Persons"); 
     BasicDBObject doc = new BasicDBObject(); 
     doc.put("something?", "something?"); 
     col.insert(doc); 

3 bước đầu tiên thật dễ dàng. Tôi có bộ sưu tập của tôi (bảng), tôi nên làm cho các lĩnh vực BSON (cột) tên, tuổi tác, kết hôn. Nhưng bằng cách nào? Tôi biết phương thức put(), nhưng tôi nên đặt cái gì vào? Và nếu tôi có cấu trúc, tôi muốn thêm một số "người".

Bất kỳ ý tưởng nào? Cảm ơn bạn

+0

nha phiến hoặc khác Java POJO để Mongo liệu mapper cơ sở sẽ giúp quá – tgkprog

Trả lời

3

Lấy một cái nhìn tại các tài liệu ở đây: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String, java.lang.Object)

Dường như với tôi rằng đặt chấp nhận chìa khóa và giá trị so với một trong các lĩnh vực của bạn, ví dụ:

doc.put("name", myPersonInstance.getName()); 
doc.put("age", myPersonInstance.getAge()); 

Bạn có thể chèn bao nhiêu thuộc tính bằng cách đặt như bạn muốn. Ngoài ra còn có các phương pháp để thêm từ một Bản đồ và như vậy.

Hãy nhớ rằng tôi chưa bao giờ sử dụng API Java MongoDB, vì vậy tôi chỉ dựa vào các báo cáo của mình trên tài liệu đó và một số kiến ​​thức nhỏ về MongoDB nói chung.

Đối với hồ sơ, những "đặt của" sẽ tương đương với một cấu trúc JSON như:

{name: "John", age:35} 

Hy vọng nó giúp.

5

Bạn nên cố gắng loại bỏ suy nghĩ về các cột có MongoDB. Đó là sơ đồ để mọi tài liệu có thể có các bộ trường khác nhau ngay cả trong cùng một bộ sưu tập vì vậy các trường suy nghĩ là các cột có thể gây hiểu nhầm.

Tôi khuyên bạn nên xem qua hướng dẫn Java MongoDB chính thức HERE.

Bạn sẽ có thể làm điều gì đó như thế này:

doc.put("name", "John"); 
doc.put("age", 30); 
doc.put("married", false); 
Các vấn đề liên quan