这与http://docs.mongodb.org/manual/core/query-optimization的MongoDB手册有关。
我不了解涵盖查询的目的。如果我们在类型和项目字段上有一个带索引的集合,如下所示
{ type: 1, item: 1 }
如果查询是这样的
db.inventory.find( { type: "food", item:/^c/ },
{ item: 1, _id: 0 } )
这只会返回项目吗?为什么它只返回项目? MongoDB查询的第二部分 在找到部分之后,即
{ item: 1, _id: 0 } )
它意味着什么?什么是0和1? 为什么下面的查询返回item和id?
db.inventory.find( { type: "food", item:/^c/ },
{ item: 1 } )
答案 0 :(得分:0)
参考db.collection.find的文件,它说非常清楚,第二个参数是关于哪个归档:
可选。指定使用投影运算符返回的字段。要返回匹配文档中的所有字段,请省略此参数。
当然,您可以使用这些投影操作符。但大多数时候我们只指定要返回的字段以及哪些字段不返回。所以
{ item: 1, _id: 0 }
表示结果集应该只包含字段项,而不是_id(因为id默认为在结果集中,除非你说不)。
另请注意,在JavaScript世界中,1/0也表示true / false。如果它有助于你理解。因此:
1 == true // true
0 == false // true
这是因为JavaScript中的自动转换。如果您不想转换,
1 === true // false