0

MongoDB には、https://jira.mongodb.org/browse/SERVER-478 (およびhttps://jira.mongodb.org/browse/SERVER-589のより一般的なバージョン)で説明されている素晴らしい問題があります。

回避策として、クエリを and ではなく and のサイズで表現しようとしています。

     { '$match' => {
      '$and' => [
        items: {'$and' => ['$size' => 0, '$size' => 1, ... until the length I need is reached]},
        ...
      ],
    }},

私は取得し続けfailed with error 10068: "exception: invalid operator: $and"ます。本当に明らかなことを見落としていますか?

4

1 に答える 1

0

まず、 を使用しようとすると$and、結果が得られない可能性があります。これは、クエリが、指定したすべてのサイズ (0、1、...必要な長さ) と一致するサイズのアイテムを含むドキュメントを検索しようとするためです。$or代わりに試してみるべきだと思います。第二に、以下はあなたが本当に必要とするかもしれないものです:

db.test.aggregate(
  {$match:{
    $or:[ {items:{$size:0}}, {items:{$size:4}} ]} // just include all your size conditions
  }
)
于 2013-05-23T02:21:10.927 に答える