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官网
使用 $ 操作符能返回一个 多个的话 没门