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 に答える