1
我是MongoDB的新手,我想過濾一個內部數組。當前文檔的樣子:MongoDB找到內部數組
{
"data1": "value1",
"data2": "value2",
...
"array1": [
{
"field1": field1value"
"field2": field2value"
},
{
"field1": expectedvalue"
"field2": field2value"
},
]
}
我期待像一個結果:
{
"data1": "value1",
"data2": "value2",
...
"array1": [
{
"field1": expectedvalue"
"field2": field2value"
},
]
}
我試圖找到並聚集在In MongoDB, how do I search in an array of sub-documents?和其他類似的問題建議。
的問題是,我失去所有的信息的陣列(數據1,數據2,...)以外:
{
"_id" : { "$oid" : "8001212651b8a68278edbc92"},
"array1": [
{
"field1": expectedvalue"
"field2": field2value"
},
]
}
只是一個問題:我可以在結果中獲取data1,data2,...的值,而不是在生成的文檔中明確地獲取/設置它的值嗎? – user1383093
爲了過濾子文檔數組,您必須使用'$ project'運算符,並且由於您正在使用'$ project'運算符,所以您必須告訴MongoDB您要投影的內容,即您必須明確包含'data1', 'data2'等,通過向'$ project'文件中添加條目,如:'attribute_name:1'。 – glytching
好的,非常感謝。我想我可以做一些事情,比如'用我新過濾的數組替換我的舊數組',而不需要再次創建所有原始*文檔*數組外部的數據,因爲它保持不變。 – user1383093