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

Bra*_*rad 5 mongodb

我正在尝试在 MongoDB 中为子文档中的多个字段创建文本索引。这些字段因文档而异。 根据文档,我会像这样创建一个普通的文本索引:

db.collection.ensureIndex({
    subject: "text",
    content: "text"
});
Run Code Online (Sandbox Code Playgroud)

就我而言,我希望fs.files集合中所有字段的索引位于db.fs.files.metadata. 我试过这个:

db.fs.files.ensureIndex({'metadata.$**': 'text'});
Run Code Online (Sandbox Code Playgroud)

我不相信这有效,因为搜索db.fs.files.runCommand('text'...返回零结果,并将db.fs.files.stats()索引显示为非常小的大小(并且我在这个集合中有大约 35k 个文档)。

如何在键未知的子文档的字段值上创建文本索引?

tom*_*tom 4

如果您在父文档上创建 {'$**': 'text'} 索引,它也会为子文档字段建立索引。文档说它只影响文本,因此它将跳过文件数据,但会包含名称和内容类型。