【发布时间】:2018-06-07 11:41:04
【问题描述】:
我有一个包含嵌套 json 数据的文档。它有 15 种文本和 10 种整数数据类型。
如何编写查询以显示任何匹配的文本或整数?
我尝试了以下查询,但没有按预期工作。
db.customers.find({ sno : /ab/ },{ name : /ab/ }).count()
我得到 0 计数作为结果。我在看 OR 子句而不是 AND 子句。
【问题讨论】:
我有一个包含嵌套 json 数据的文档。它有 15 种文本和 10 种整数数据类型。
如何编写查询以显示任何匹配的文本或整数?
我尝试了以下查询,但没有按预期工作。
db.customers.find({ sno : /ab/ },{ name : /ab/ }).count()
我得到 0 计数作为结果。我在看 OR 子句而不是 AND 子句。
【问题讨论】:
您可以在$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/
【讨论】: