java - (MongoDB Java) $push 入数组

我正在使用 mongo 2.2.3 和 java 驱动程序。 我的困境,我必须将一个字段和值插入一个数组,但我似乎无法弄清楚如何做到这一点。我的数据样本:

"_id" : 1,
"scores" : [
    {
        "type" : "homework",
        "score" : 78.97979
    },
    {
        "type" : "homework",
        "score" : 6.99
    },
    {
        "type" : "quiz",
        "score" : 99
    }
]

我可以在 shell 中 $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()));

最佳答案

DBObject listItem = new BasicDBObject("scores", new BasicDBObject("type","quiz").append("score",99));
DBObject updateQuery = new BasicDBObject("$push", listItem);
myCol.update(findQuery, updateQuery);

https://stackoverflow.com/questions/15436542/

相关文章:

mongodb - 如何获取 MongoDB 中单个索引的大小?

mongodb - 在 MongoDB 中,如何使用 $set 更新嵌套值/嵌入文档?

python - 如何检查 MongoDB 实例的客户端是否有效?

mongodb - 获取文档的特定部分

mongodb - MongoDB中count()和find().count()的区别

mongodb - 仅当 MongoDB 文档字段不存在时,如何更新它们?

mongodb - Mongo复杂排序?

javascript - 多个填充 - Mongoose js

mongodb - Mongo ids 导致可怕的 URL

node.js - 为什么MongoDB Node Driver生成实例池被破坏错误?