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