我的模型中有这个对象
{
"name" : "one",
"items" : [
{
"foo" : "1",
"bar" : "2"
},
{
"foo" : "1",
"bar" : "3"
}
]
},...
当我查询时
myModel.find({
"items.foo": "1",
"items.bar": "2"
}
结果是名称为一的对象,这是正确的,但是当我查询时
myModel.find({
"items.foo": "1",
"items.bar": "3"
}
它应该找不到任何结果,但是,出乎意料的是,它再次产生名称为一的对象。 我尝试过,但发生了相同的结果
myModel.find({
$and :[{
"items.foo": "1"},
{"items.bar": "3"}
]}
有什么建议我应该做什么吗?
最佳答案
它应该有效:
myModel.find({
items: {
$elemMatch: {
$and: [{
foo: "1"
},
{
bar: "3"
}
]
}
}
})
关于node.js - 如何在 Mongoose 中搜索具有两个元素的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60017940/