2017-12-26 17 views
0

入れ子になったjsonデータを持つドキュメントがあります。これには15のテキストと10の整数データ型があります。mongodbまたはpymongoを使って部分一致テキストを検索する方法

一致するテキストまたは整数を表示するには、どうすればよいですか?

次のクエリを試しましたが、期待通りに機能しませんでした。

db.customers.find({ sno : /ab/ },{ name : /ab/ }).count() 

私は結果として0カウントを得ています。私はOR句ではなくAND句を見ています。

答えて

1

あなたは$orステートメント内のすべてのフィールドを指定することができます。

db.customers.find({$or: [ 
    {field1: /ab/ }, 
    {field2: /ab/ }, 
    {field3: /ab/ }, 
    {field4: /ab/ }, 
    {field5: /ab/ } 
]}).count() 

また、あなたはテキストインデックスを作成する必要があります。このため、テキストクエリを使用することができます。そして、

db.collection.createIndex({ "$**": "text" }) 

クエリそれを使用して:

db.articles.find({ $text: { $search: "ab" } }) 

テキストクエリ - https://docs.mongodb.com/manual/reference/operator/query/text/ テキストインデックス - https://docs.mongodb.com/manual/core/index-text/

+0

ありがとう、ケビンあなたの応答! pymongoでこのクエリをどのように変換できますか?どこでも引用符と二重引用符を追加しようとしましたが、正しい応答を得られませんでした。 – jason

+0

正規表現を作成する必要があります。この回答を参照してください:https://stackoverflow.com/a/4877662/4079967 –

関連する問題