Java驱动和python是最发达的,可以在驱动DOCS查看。通常想法(命令的结构)与shell中的相同,您只需要帮助器来构造命令。
在 Java 中,此文档可以对其工作方式提供一些提示:DOCS
所以
$push:
Mongoshell DOCS
示例:
db.students.update(
{ name: "joe" },
{ $push: { scores: 89 } }
)
其中 { name: "joe" } 是标识要更新的正确文档的查询,分数是一个数组字段,89 将被异常。
JavaDOCS
示例:
看看这个问题:(MongoDB Java) $push into array
$elemmatch:
Mongoshell DOCS
示例:
看看这个问题:Convert MongoDB query into Java
$slice:
Mongoshell DOCS
语法:
db.collection.update( <query>,
{ $push: {
<field>: {
$each: [ <value1>, <value2>, ... ],
$slice: <num>
}
}
}
)
在Java中类似(只是因为我没有找到这个确切的更新使用切片的Java示例,这是我自己构建的):
final MongoClient mongoClient = new MongoClient();
final DBCollection coll = mongoClient.getDB("TheDatabase").getCollection("TheCollection");
coll.update(<query>, new BasicDBObject("$push",
new BasicDBObject(<field>,
new BasicDBObject("$each",
new BasicDBList()
.put(0,<value1>)
.put(1,<value2>)
.put(3,<value3>))
.append('$slice',-5)));
示例:请查看这些问题,了解 slice 在其他情况下的用法:
$slice mongoDB Java ,
Mongo java driver - retrieve slice of array without any other field
或者这个帖子:https://groups.google.com/forum/#!topic/mongodb-user/4c3P0_FOzyM