查找任何字段与搜索字符串匹配的文档

Jed*_*urt 4 mongodb

在研究MongoDB文本搜索和关键字索引之后,我问这个问题.我也发现了一个类似的问题,但是为每个包含所有字段值的文档添加一个数组似乎是一个kludgy解决方案.因此这个问题.

我们需要编写一个查询来返回任何字段与搜索字符串匹配的文档.

我们的第一个想法是沿着这些方向写一个查询:

db.collection.find( { field_one: /search string/i, 
                      field_two: /search string/i,
                      field_three: /search string/i } );
Run Code Online (Sandbox Code Playgroud)

我们的挑战是文档之间的字段会有所不同,因此我们无法对查询中的字段名称进行硬编码.

MongoDB是否可以使用以下伪代码?

db.collection.find( { [any field]: /search string/i } );
Run Code Online (Sandbox Code Playgroud)

rdo*_*iop 5

也许这不是你想要的,但如果你正在考虑允许这样的查询的架构重组,这篇文章似乎很有趣:

MongoDB查询帮助 - 查询子对象中任何键的值