我的mongoDB(v3.6.4)遇到问题,下面是我现在的数据。我需要在“ second_list”中查找(并更新)某个元素的“文本”值,即返回“ hello”并将其更改为“ hello world”。
{
"_id": ObjectId("xxxxxxxxxxxxx"),
"top_list": [
{
"create_time": "2019-06-10 15:56:46",
"second_list": [
{
"name": "v1",
"text": "hello"
},
{
"name": "v2",
"text": "good morning"
},
{
"name": "v3",
"text": "bye"
}
]
}
]
}
我已经尝试过该查询
db.myCollection.find(
{'top_list.second_list.name':'v1'},
{"top_list.second_list":1,"_id":0}
)
,但它返回了整个“ second_list”。我想要的应该是
{
"name": "v1",
"text": "hello"
}
或只是字符串“ hello”。
答案 0 :(得分:1)
此语法可帮助我查找和更新值
db['myCollection'].findAndModify({query:{_id: ObjectId("xxxxxxxxxxxxx")}, update: {$set: {"top_list.second_list.0.text":"someNewText"}}})
top_list.second_list.0.text
中的0是您要访问的数组索引
答案 1 :(得分:0)