0

MongoDB データベースに次のドキュメントがあります。

{"stats": [2,5,1]}
{"stats": [1,9,2]}

statsここで、値21(この順序で)を含む -arrayを持つドキュメントを見つけたいと思います。したがって、最初のドキュメントのみが検出されます。単純な$allクエリでは、両方のドキュメントが返されます。MongoDB のクエリ言語でこれを行う方法はありますか?

または、次のドキュメントを想定します。

{"stats": [{"val": 2, "position": 0},{"val": 5, "position": 1},{"val": 1, "position": 2}]}
{"stats": [{"val": 1, "position": 0},{"val": 9, "position": 1},{"val": 2, "position": 2}]}

同じ質問 :-) これらのドキュメントにクエリを実行して、値 2 の後に値 1 が続くドキュメントのみを返す方法はありますか (position-value を考慮に入れる)。

おそらく$where-queryを使用できますが、ドキュメントによると、これは推奨される方法ではありません(そして遅いです):-)

4

1 に答える 1

0

$all と $in は順序を考慮しません。意味: 標準のクエリ構文では実行できません。

于 2012-09-05T13:14:36.460 に答える