如何使用mongodb或pymongo搜索部分匹配文本

问题描述 投票:0回答:1

我有一个带有嵌套json数据的文档。它有15个文本和10个整数数据类型。

如何编写查询,以便显示匹配的任何文本或整数?

我尝试了以下查询,但它没有按预期工作。

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

我得到0计数结果。我正在看OR子句而不是AND子句。

mongodb pymongo
1个回答
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/

© www.soinside.com 2019 - 2024. All rights reserved.