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/) –