10

例えば..

class Page(Document)
    tags = ListField(StringField())

この場合、次のようにタグ リストで値を見つけることができます。

Page.objects(tags='coding')

タグが ['coding', 'x', 'y'] のような場合、ドキュメントは一致します...

しかし、私の質問は、リストフィールドにない値を見つける方法です。

私の間違ったコードは..

Page.objects(tags!='coding') 

また

Page.objects(tags__not = 'coding')

また

Page.objects(tags__not__in = 'coding')

しかし..単に機能するわけではありません..

ListField に特定の値がないドキュメントをクエリするにはどうすればよいですか?

4

2 に答える 2

20

タグコーディングがないページを見つけるには、$nin演算子を使用します。

Page.objects(tags__nin=['coding'])
于 2012-03-05T10:51:31.540 に答える
1

この場合、組み込みの mongo 構文の使用をスキップして、そのままのクエリを使用します。

Page.objects(__raw__={"tags" : {"$ne" : ['coding']}})

クエリが複雑になるにつれて、このように設定したいと思うでしょう。

于 2012-05-16T04:20:42.117 に答える