我正在尝试在MongoDB中为子文档中的多个字段创建文本索引。这些字段在文档之间并不相同。 According to the documentation,我会像这样创建一个普通的文本索引:
db.collection.ensureIndex({
subject: "text",
content: "text"
});
在我的情况下,我希望fs.files
集合中所有字段的索引位于db.fs.files.metadata
。我试过这个:
db.fs.files.ensureIndex({'metadata.$**': 'text'});
我不相信这有用,因为使用db.fs.files.runCommand('text'...
搜索会返回零结果,而db.fs.files.stats()
会将索引显示为非常小的尺寸(我在此集合中有~35k文档)。
如何在未提前知道密钥的子文档的字段值上创建文本索引?
答案 0 :(得分:3)
如果在父文档上创建{'$ **':'text'}索引,它也将索引子文档字段。文档说它只影响文本,因此它将跳过文件数据,但将包括名称&的contentType。