在子文档字段通配符上创建文本索引

时间:2013-10-08 04:48:36

标签: mongodb

我正在尝试在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文档)。

如何在未提前知道密钥的子文档的字段值上创建文本索引?

1 个答案:

答案 0 :(得分:3)

如果在父文档上创建{'$ **':'text'}索引,它也将索引子文档字段。文档说它只影响文本,因此它将跳过文件数据,但将包括名称&的contentType。