我在研究了MongoDB文本搜索和关键字索引后提出了这个问题。我也发现了一个类似的问题,但是向包含所有字段值的每个文档添加一个数组似乎是一个笨拙的解决方案。因此这个问题。
我们需要编写一个查询,该查询将返回任何字段与搜索字符串匹配的文档。
我们的第一个想法是按照以下思路编写一个查询:
db.collection.find( { field_one: /search string/i,
field_two: /search string/i,
field_three: /search string/i } );
我们面临的挑战是文档之间的字段会有所不同,因此我们无法在查询中硬编码字段名。
MongoDB是否可以使用以下伪代码?
db.collection.find( { [any field]: /search string/i } );
也许这不是您正在寻找的,但如果您正在考虑允许此类查询的模式重组,这篇文章似乎很有趣:
MongoDB查询帮助-查询子对象中任何键的值