我在 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'}}
]}
是否可以创建一个一次性遍历所有嵌套字符串\深度的查询?