2016-03-23 3 views
0

boxIdフィールドが設定されていないか空でないドキュメントを探しています。この動作しません実行Meteorの "OR"クエリ

return Items.find({ createdBy: currenUser, boxId: { $or: [{ $exists: false }, { $size: 0 }] } }) 

は、ここで私は、コンソール上で取得エラーです:

Exception in template helper: Error: Unrecognized operator: $or 

答えて

1

MongoDBのキー名と演算子の順序は、多くの場合、混乱することができます。フィールド条件の前に$orを置く:

return Items.find({ createdBy: currentUser, 
    $or: [ 
    { boxId: { $exists: false }}, 
    { boxId: "" }} 
    ] 
}); 
+0

私はもうエラーを取得していないんだけど、それはboxIdフィールドは「」(空の引用符)で文書を返していません。 $ sizeはこれに適した演算子ですか? –

+0

関連する質問とアプローチについてはhttp://stackoverflow.com/a/9694397/2805154を参照してください。 –

+0

私の悪いことに、$ sizeを2番目の条件に置き換えるのを忘れました。それは今働く。ありがとう! –

関連する問題