【发布时间】:2015-05-16 11:50:27
【问题描述】:
在 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、...)
我想以某种方式组合这两个查询,但不知道如何(除非在代码中检索)。
【问题讨论】:
标签: arrays mongodb mongoose subdocument