Kun*_*ndu 3 arrays object mongoose mongodb node.js
我有一个如下的架构: -
var P = {
s : [{
data : [],
sec : mongoose.Schema.Types.ObjectId
}]
};
Run Code Online (Sandbox Code Playgroud)
现在我想只查找截面的对象而不是整行.喜欢如果我传递sec值,我只想要s.data该sec对象的值.
例如: -
{ s : [
{
data : [],
sec : '52b9830cadaa9d273200000d'
},{
data : [],
sec : '52b9830cadaa9d2732000005'
}
]
}
Run Code Online (Sandbox Code Playgroud)
结果应该看起来像 -
{
data : [],
sec : '52b9830cadaa9d2732000005'
}
Run Code Online (Sandbox Code Playgroud)
我不想要所有的整排.可能吗?如果是,那么请帮助我.
您可以使用$elemMatch投影运算符将数组字段限制s为单个匹配元素,但不能使用删除s文档的级别find.
db.test.find({}, {_id: 0, s: {$elemMatch: {sec: '52b9830cadaa9d2732000005'}}})
Run Code Online (Sandbox Code Playgroud)
输出:
{
"s": [
{
"data": [ ],
"sec": "52b9830cadaa9d2732000005"
}
]
}
Run Code Online (Sandbox Code Playgroud)