例如有组数据:
name: 'food',
data: {
fruit: [
{
name: 'apple',
stock: 10
},
{
name: 'pear',
stock: 66
}
...
]
}
db.col.find({'data.fruit.stock': 66}, {data.fruit.stock: 1})
查询到的是整个data.fruite
;
Q1: 有什么方法只获取过滤器查询的那条数据吗?如果这个文档对象量比较大咋办?
Q2: 这是Mongodb的一种特性?命中过滤器的条件后,返回的是整个文档对象?
Q3: 有这方面的API文档可参阅么?
题主问的这个问题其实是和Data Model和业务查询上的权衡有关联。
1、MongoDB 每次返回的基本上是以文档 document为单位的,如果文档中包含数组(Array),也是需要返回所有数组的;
2、如题主所愿,如果想按照查询条件,只是返还数组中的满足条件的数据,可以考虑
/q/10...
供参考。
Love MongoDB! Have Fun!
------------------------华丽的分割符--------------------------------
MongoDB中文社区线下活动缤纷,请猛戳下方:
2017华山论剑|MongoDB中文社区
三月份杭州站在即!!! 感兴趣的朋友火速报名!!!
确实会返回data.fruit数据的stock;但也可以返回条件的stock,但要知道stock在fruit数组的index数.
即
参考(mongodb 版本 3.4):
https://docs.mongodb.com/manu...
https://docs.mongodb.com/manu...