要在所有字段上进行文本搜索,首先必须在所有字段上创建文本索引。
正如mongodb文档所指出的那样:“要允许对具有字符串内容的所有字段进行文本搜索,请使用通配符说明符($ **)索引所有包含字符串内容的字段。”
如果您在mongo shell(在命令行中通过调用“ mongo”执行)内部工作,则可以使用此命令执行操作,其中“ collection”是您要使用的数据库中的集合名称。
db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })
第二个对象,即{name:"TextIndex"}
,是可选的...您实际上不需要给索引命名,因为每个集合只能有一个文本索引(一次...您可以删除索引并创建新的索引如果你想)。
一旦在所有字段上创建了文本索引,就可以使用以下查询对象进行简单的文本搜索:
{ $text : { $search: <your string> } }
因此,如果您正在编写javascript函数,则可能会执行以下操作:
var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });
有关控制搜索的各种方式的更多信息,请参见此处有关文本搜索的mongodb文档。