1

以下のようなリストフィールドを持つコレクションがある場合。

class Post(Document):
   tags = ListField(StringField())

タグ付きの投稿があるとしましょう:面白い、面白い。

また、タグが検索用語のいずれかを満たす投稿を検索したい場合は、どうすればよいですか?

「おもしろい」と「素晴らしい」という検索用語を入力すると、上記の投稿が結果セットに含まれるはずです。

ドキュメントを読み通そうとしましたが、そのような演算子はないようです。「all」と「in」は似ていますが、私が望むことを実行できません。

ありがとう!

乾杯、クリス

4

1 に答える 1

6

これは実際には単純なクエリです。例:

class Post(Document):
    tags = ListField(StringField())

>>> Post.drop_collection()
>>> Post(tags=["hello", "world"]).save()
>>> Post(tags=["cat", "dog"]).save()

>>> Post.objects(tags__in=['hello', 'cat']).count()
... 2

これが意味するのは、にあるドキュメントを見つけることhelloですtags。Inは、'in'配列内のアイテムのいずれかが一致しall、すべてのアイテムが一致する場所、つまり完全に一致する場所を検索します。

于 2012-10-11T08:05:00.253 に答える