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

时间:2013-11-13 18:04:35

标签: mongodb

在研究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 } );

1 个答案:

答案 0 :(得分:5)

也许它并不完全符合您的要求,但如果您正在考虑允许此类查询的架构重组,则此帖子似乎很有趣:

MongoDB Query Help - query on values of any key in a sub-object