我希望像这样查询Mongoose:
Users.find({
name: {
first: 'John',
last: 'Doe'
}
}).exec(function(err, users){
console.log(users);
});
但看起来我必须以这种方式格式化以获得响应:
Users.find({
'name.first': 'John',
'name.last': 'Doe'
}).exec(function(err, users){
console.log(users);
});
有没有办法使用第一种方法?我希望直接传递一个JSON对象,而不必重新格式化。
谢谢!
答案 0 :(得分:2)
当且仅当存在完全匹配时,您才能Users.find({ name: { first: 'John', last: 'Doe' } }
。这意味着name对象仅包含具有这些值的字段。
如果你有:
name: {
first: 'John',
middle: 'Fearless',
last: 'Doe'
}
然后尝试完全匹配将失败。要在子文档中进行部分匹配,您需要在第二个示例中执行:
Users.find({
'name.first': 'John',
'name.last': 'Doe'
});
来自mongodb的文件: