如何防止MongoDB在查找文档时返回对象ID?

时间:2014-03-01 22:19:19

标签: mongodb mongodb-query

我在MongoDB中有以下文档......

{
  "_id" : ObjectId("531221cd960100960116b992"),
  "username : "joe",
  "address" : [
    {
      "zip" : "8000",
      "city" : "Zurich"
    },
    {
      "zip" : "6900",
      "city" : "Lugano"
    }
  ]
}

...并且要检索第二个地址,我使用以下语句:

db.users.find({ _id: ObjectId("531221cd960100960116b992") }, { addresses: { $slice: [0, 1] } } )

除了它还返回对象id:

之外
{ "addresses" : [ { "zip" : "6900", "city" : "Lugano" } ], "_id" : ObjectId("531221cd960100960116b992") }

如何阻止MongoDB返回对象ID?我知道我应该提供像_id : 0这样的投影......但是我应该把它放在上面的表达式中?我做了很多尝试......但没有成功。

感谢。

3 个答案:

答案 0 :(得分:9)

{'_id': false}

作为find()

的参数
db.users.find({ _id: ObjectId("531221cd960100960116b992")}, { addresses: { $slice: [0, 1] } ,'_id': false} )

答案 1 :(得分:8)

这与@ hanleyhansen的答案完全相同,但只是为了让你知道你可以与false交替使用0,如:

db.users.find({ _id: ObjectId("531221cd960100960116b992")}, { addresses: { $slice: [0, 1] } ,'_id': 0} )

答案 2 :(得分:0)

使用此代码

 db.yourCollectionName.find({},{_id:0})