我想在MongoDB中创建一个查询来查找文件和数组文件属性的对象数组。
我有文件:
{meta: {prop1: "hi1", prop2: "ho1"}},
{meta: {prop1: "hi2", prop2: "ho2"}},
{meta: {prop1: "hi3", prop2: "ho3"}},
{meta: {prop1: "hi1", prop2: "ho2"}}
我想找到meta
属性是此数组中确切对象之一的文档:
[
{prop1: "hi1", prop2: "ho1"}, {prop1: "hi2", prop2: "ho2"}
]
期望的结果将是文件:
{meta: {prop1: "hi1", prop2: "ho1"}},
{meta: {prop1: "hi2", prop2: "ho2"}}
但不是:
{meta: {prop1: "hi1", prop2: "ho1"}},
{meta: {prop1: "hi2", prop2: "ho2"}},
{meta: {prop1: "hi1", prop2: "ho2"}}
答案 0 :(得分:1)
使用$in运算符。
Collection.find({
meta: {
$in: [
{ prop1: 'hi1', prop2: 'ho1'},
{ prop1: 'hi2', prop2: 'ho2'}
]
}
})
答案 1 :(得分:0)
我们可以使用$or
-
Collection.find({
$or: [
{'meta.prop1': 'hi1', 'meta.prop2': 'ho1'},
{ 'meta.prop1': 'hi2', 'meta.prop2': 'ho2'}
]
})
注意:内部对象$或,$和条件是构建。
我们也可以使用$in
,因为 $ in是使用$或构建的。