例如有組資料:
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...