[英]Retrieve the first item of an array in a sub-document without getting other sub-documents
在MongoDB中-如何僅檢索屬性中數組的第一項?
我有一個嵌套的文檔,並使用$text
查詢(但這沒關系,普通查詢也不起作用)
我的文件結構:
{
"_id": ObjectId("...."),
"propA": {
"prop1": [
{ ... }, // this is what I want to see
{ ... },
...
],
"prop2": { ... },
"prop3": { ... },
...
},
"propB": {
"prop1": { ... }, // +this, but that's not a problem
"prop2": { ... },
"prop3": { ... },
...
},
"propC": { ... },
...
}
當我跑步時
collection.find({}, { "propA.prop1": 1, "propB.prop2": 1 });
我在propA.prop1
獲得了完整的數組。 當我跑步時
collection.find({}, { "propA.prop1": {$slice: 1}, "propB.prop2": 1 });
我僅獲得propA.prop1
的第一項,但也得到propA
內部的所有其他項(如propA.prop2
, propA.prop3
,...)
我想以某種方式組合這兩個查詢,但無法弄清楚(查詢代碼后除外)。
您可以通過在投影中包含第二個不存在的propA
字段來解決此問題:
collection.find({}, {
"propA.prop1": {$slice: 1},
"propA.nonExistentField": 1,
"propB.prop2": 1
});
有點奇怪,但是可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.