在研究MongoDB文本搜索和关键字索引之后,我问这个问题。我还发现了一个similar question,但是为每个包含所有字段值的文档添加一个数组似乎是一个kludgy解决方案。因此这个问题。
我们需要编写一个查询,返回任何字段与搜索字符串匹配的文档。
我们的第一个想法是沿着这些方向写一个查询:
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 } );
答案 0 :(得分:5)
也许它并不完全符合您的要求,但如果您正在考虑允许此类查询的架构重组,则此帖子似乎很有趣:
MongoDB Query Help - query on values of any key in a sub-object