【发布时间】:2019-08-01 02:55:25
【问题描述】:
这就是我的 mongodb 数据库中的数据。
_id:ObjectId('5c38e514b88edd0ef236c3f7'),
rooms:[
{
info:{
name:'John',
age:'23'
}
},
{
info:{
name:'Mary',
age:'15'
}
}
]
使用聚合框架,我想匹配位于房间数组中的 info 对象内的“name”字段。我如何做到这一点?
到目前为止我所尝试的:
Hotel.aggregate([
{$match: {
'_id':mongoose.Types.ObjectId(lodgeId),
'rooms.info.name':'John'}}
)]
这给了我所有房间,而不是匹配名字为 John 的房间。
如何只获取匹配的行?
【问题讨论】:
-
尝试将 'rooms.info.name':'John' 替换为 'rooms.info.name': {$eq: ['John']}
标签: node.js mongodb express mongoose aggregation-framework