【发布时间】:2015-03-13 19:53:08
【问题描述】:
问题:
我尝试查看文档数组中的对象并更新它。
下面的语法给我我想要的对象,但我不知道如何更新这个对象。我尝试在 findAndModify 中使用此语句,但似乎我无法在 findAndModify 方法中使用 $elemMatch
db.users.find({"username":"username"},{"array":{$elemMatch:{"name":"name"}}})
我尝试更改的 JSON 示例
[{
"_id": ObjectId("5501b8fb77382c23704543fd"),
"username": "ker",
"password": "ker",
"character": "pet",
"visits": [],
"pets": [{"name": "Jura", "kind": "dog", "age": "2"}, {"name": "Ala", "kind": "dog", "age": "5"}]
}, {
"_id": ObjectId("5501b8fb77382c23704543fd"),
"username": "mer",
"password": "mer",
"character": "pet",
"visits": [],
"pets": [{"name": "Ita", "kind": "cat", "age": "6"}, {"name": "Esa", "kind": "cat", "age": "1"}]
}]
总结:
我必须在集合中找到文档,然后在文档的数组中找到对象并更新这个对象。
所以我的逻辑是这样的
db.collection.findAndModify({query:{Find Document In Collection THEN in document's array(pets) find object}, update:{$set:{New Values For Object}}})
【问题讨论】:
-
我不清楚这个问题到底是什么。您能否向我们展示一个示例文档,然后向我们展示您希望它如何更改?请将示例文档编辑到问题中。
-
我更新了问题,查看我试图表达我的想法和我试图实现的目标的最后陈述
标签: javascript arrays mongodb express