文字列、別のサブドキュメント、ネストされた別のサブドキュメントなど、さまざまなタイプが含まれる場合がある MongoDB のサブドキュメントがあります。タイプに関係なく、このサブドキュメントのコンテンツ内を検索するクエリを作成しようとしています。
次のドキュメントが与えられます。
{ name: "test1", content: "test contents"}
{ name: "test2", content: {family: "tests family content", last: "another test content"} }
{ name: "test3", content: {subdocument: {family: "super family contents", last: "last test content"} } }
すべてのドキュメントとサブドキュメント内のすべての文字列を検索するクエリを使用したいと考えています。すでに次のクエリを試しましたが、サブドキュメントの最もネストされたレベルのみを返します - content.subdocument.family
:
{ $or: [
{"content": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.family": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.last": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.subdocument.family": {'$regex': '.*conten.*', '$options': 'i'}},
{"content.subdocument.last": {'$regex': '.*conten.*', '$options': 'i'}}
]}
ネストされたすべての文字列を一度に反復処理する 1 つのクエリを作成することは可能ですか?