リスト内の任意のプレフィックスで始まる特定のプロパティを持つ要素について、Mongo データベースにクエリを実行する必要があります。今、私は次のようなコードを持っています:
query = mymodel(terms__term__in=query_terms)
これは、リスト「query_terms」で明示的に出現する StringField「term」を持つリスト「terms」にアイテムを持つオブジェクトに一致します。私が達成したいのは、リスト「query_terms」で発生するプレフィックスで始まるStringField「term」を持つリスト「terms」にアイテムを持つオブジェクトを持つことです。「用語」のすべての可能なプレフィックスをデータベースに保存せずに、1 つのクエリでそれを行うことは可能ですか? 編集: 以下のソリューションはうまく機能しますが、リストのすべてのプレフィックスで始まる用語を含むオブジェクトを見つける必要があります。私が変更され
query = reduce(lambda q1, q2: q1.__or__(q2),
map(lambda prefix: Q(terms__term__startswith=prefix)))
に
query = reduce(lambda q1, q2: q1.__and__(q2),
map(lambda prefix: Q(terms__term__startswith=prefix)))
しかし、これは機能しません。次のエラーが発生します。
InvalidQueryError: Duplicate query conditions: terms__term__startswith
何か案は?