(MongoDB Java)$推入阵列
我正在使用Mongo2.2.3和java驱动程序。 我的困境是,我必须将一个字段和值推送到一个数组中,但我似乎不知道该怎么做。我的数据示例:
"_id" : 1,
"scores" : [
{
"type" : "homework",
"score" : 78.97979
},
{
"type" : "homework",
"score" : 6.99
},
{
"type" : "quiz",
"score" : 99
}
]
我可以将$push推入外壳:
db.collection.update({_id:1},{$push:{scores:{type:"quiz", score:99}}})
但当我把它翻译成java时,我把自己搞糊涂了,把键盘扔到了墙上
到目前为止,我的java代码(不完整且错误):
DBObject find = new BasicDBObject("_id", 1);
DBObject push = new BasicDBObject("$push", new BasicDBObject(
"scores", new BasicDBObject()));
# 1 楼答案
MongoDB Java驱动程序可以简化这一点。使用$each而不是$push
$each mongodb reference document
Java示例-
# 2 楼答案
如果您更熟悉shell的查询格式,您可能会发现使用
JSON.parse
来为$push
构建DBObject
更容易:# 3 楼答案
因为
mongodb-driver 3.1.
有一个构建器类com.mongodb.client.model.Updates
,每个更新案例都有相应的方法。在这种情况下,这将是:# 4 楼答案
使用Jongo,您可以执行as in the shell:
在Java中变成:
不需要任何对象;-)
# 5 楼答案