从Meteor搜索查询中排除_id?

时间:2013-03-04 01:39:19

标签: mongodb meteor

我正在尝试从没有_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吗?

1 个答案:

答案 0 :(得分:3)

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

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

我在某处读过,不支持包含/排除的混合。这意味着,您的第一个示例将无效。

修改

来自流星docs

  

字段说明符

     

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

     

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

     

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

     

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

     

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

     

无法混合包含和排除样式。