我知道我们如何将数据放入集合中,但我们如何将它们添加到子集中,如下例所示?
Jar文件:
BSON-3.4.2.jar,
MongoDB的驱动-3.4.2.jar,
MongoDB的驱动器 - 异步-3.4.2.jar,
mongodb的驱动器芯-3.4.2.jar
Java文件:
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
DBCollection coll = db.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
BasicDBObject doc = new BasicDBObject("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("url", "http://www.instagram.com/").
append("by", "users");
coll.insert(doc);
MongoDB的:
{
"_id" : "test",
"status" : 2,
"time" : null,
"instagram" :{
"description" : "database",
"likes" : 100,
"url" : "http://www.instagram.com/",
"by", "users"
},
"batchid" : 15000234
}
答案 0 :(得分:1)
由于您使用的是Java,请查看jongo和"点符号":
在你的情况下,你可以这样做:
collection.update("{ _id: 'test'}").with("{$set: {"instagram.likes": 2}})
答案 1 :(得分:1)
将您的代码更新为以下内容。根据需要添加其余的子数据字段。
BasicDBObject doc = new BasicDBObject("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("url", "http://www.instagram.com/").
append("by", "users").
append("instagram", new BasicDBObject("description","database").append("likes", "likes"));
尝试使用较新的api类。 BasicDBObject
,DBCollection
& DB
是旧的2.x类。
类似的东西。
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
MongoDatabase db = mongoClient.getDatabase("test");
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
MongoCollection<Document> coll = database.getCollection("mycol");
System.out.println("Collection mycol selected successfully");
Document doc = new Document("title", "MongoDB").
append("description", "database").
append("likes", 100).
append("url", "http://www.instagram.com/").
append("by", "users").
append("instagram", new Document("description","database").append("likes", "likes"));
coll.insertOne(doc);