我在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...但是我应该把它放在上面的表达式中的什么地方呢?我试了很多次...但没有成功.

谢谢

推荐答案

这与@hanleyhansen的答案完全相同,只是想让你知道,你可以将0与false互换使用,比如:

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

Mongodb相关问答推荐

MongoDB—基于数组中同一文档中的另一个字段更新字段

带dropTarget的MongoDB renameCollection命令是原子的吗

为什么数组长度0被认为是Mongoose中排序中最大的数字

MongoDB 投影按数组中的字符串长度排序

如何对 MongoDB setWindowFields 中当前文档以外的文档进行操作

MongoDB:嵌套数组计数+原始文档

MongoDB - 文档中多个数组大小的总和

通过 _id 更新一个文档(无效的 BSON 字段名称 _id)

MongoDB 的 Java 语法

Mongo:统计一组文档中单词出现的次数

如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId

Express 无法 PUT/DELETE 方法.出了什么问题?

在 mongodb 中查找字段的所有非不同值

从 LinkedHashMap 转换为 Json 字符串

为多个日期范围聚合 $group

如何在 Rails 中混合使用 mongodb 和传统数据库?

MongoDB服务器仍然可以在没有凭据的情况下访问

判断 mongoDB 是否连接

如何在mongoDB中检索其值以特定字符结尾的文档

用于 MongoDB 的 Node.js 模块