4

我正在尝试从没有 _id 字段但不包含的 Meteor 集合中提取文档:

Db.find({foo: bar}, {fields: {
  test1: 1,
  test2: 1,
  _id: 0
}})

也不排除:

Db.find({foo: bar}, {fields: {
  test3: 0,
  _id: 0
}})

似乎工作。两者都只返回一个空数组。我知道在 Mongo 中可以提取排除 _id 的文档,是在 Meteor 中吗?

4

1 回答 1

3

我想你忘记了一些大括号:

Db.find({
    foo: bar
}, {
    fields: {
        test3: 0,
        _id: 0
     }
});

而且我在某处读到,不支持包含/排除的混合。这意味着,您的第一个示例将不起作用。

编辑:

来自流星文档

字段说明符

在服务器上,查询可以指定一组特定的字段以包含或排除在结果对象中。(当前在客户端上忽略了字段说明符。

要从结果对象中排除某些字段,字段说明符是一个字典,其键是字段名称,其值为 0。

Users.find({}, {fields: {password: 0, hash: 0}})

要返回仅包含指定字段的对象,请使用 1 作为值。_id 字段仍包含在结果中。

Users.find({}, {fields: {firstname: 1, lastname: 1}})

不能混合包含和排除样式。

于 2013-03-04T03:21:20.017 回答