5

サブドキュメントのいくつかのフィールドに対して、MongoDB でテキスト インデックスを作成しようとしています。これらのフィールドは、ドキュメントごとに同じではありません。 ドキュメントによると、次のような通常のテキスト インデックスを作成します。

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()、インデックスが非常に小さいサイズで表示されるため、これが機能しているとは思いません(このコレクションには約 35,000 のドキュメントがあります)。

キーが事前にわからないサブドキュメントのフィールド値にテキスト インデックスを作成するにはどうすればよいですか?

4

1 に答える 1

4

親ドキュメントに {'$**': 'text'} インデックスを作成すると、サブドキュメント フィールドにもインデックスが作成されます。ドキュメントによると、テキストのみに影響するため、ファイル データはスキップされますが、name と contentType は含まれます。

于 2013-10-09T09:30:31.157 に答える