0
下面是文檔:
{
name:"james",
files:[
{name:"file1.txt", content:"..."},
{name:"file2.txt", content:"..."},
{name:"file3.txt", content:"..."}
],
status:4
}
想要讓查詢並返回:
所有根領域包括
files
files
只包含file2.txt
信息,cozecontent
非常大,只對感興趣
我知道使用$elemMatch
在查找查詢,如下圖所示:
db.collection.find(
{'files':{$elemMatch:{name:'file2.txt'}} },
{name:1, status:1, 'files.$':1 }
)
有什麼辦法避免列表中的所有投影領域,並得到所有的鑰匙?
要求:要求所有領域,但沒有列出關鍵(不列出name:1, status:1
)
你在這裏要求什麼?如何同時包含'name'和'status'?當然,請在投影中詢問他們。 MongoDB的「投影」是「全部或全部」,所以如果你不要求它,你就不會得到它。在這種情況下,沒有等效的SQL *。要求**所有**你想要的領域。 [非常清楚地覆蓋在文檔中](http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/),當然除了['$ slice''](http: //docs.mongodb.org/manual/reference/operator/projection/slice/) –