db.test.find();
{
_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: [
{
"aa": 10,
"data": "test"
},
{
"aa": 1,
"data": "test"
}
]
}
db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}})
预期结果:
{_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: {
"aa": 1,
"data": "test"
}
查询匹配的内嵌文档,你也可以直接查询,如:
对应你上面的查询实现:
db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}},{"list.$":1}).pretty()
首先 你用mongodb 你得明白 monggodb是nosql
然后 mongo的collection中存储的是document
最后 你要知道 find 返回的值一定是一个document的集合 也就是个array
所以你说的 基本上无法实现
只需要在find中填写你需要的查询的条件即可。更多详情,请查阅mongodb官网
使用 $ 操作符能返回一个 多个的话 没门