我如何在mongoosejs中使用'OR'选择器?
在下面的示例中,我不仅要查找Ghost
,还要查找Ghost2
。我可以两次调用findOne,但如果存在许多其他字段,我认为这可能效率较低。
var Person = mongoose.model('Person', yourSchema);
// find each person with a last name matching 'Ghost', selecting the `name` and `occupation` fields
Person.findOne({ 'name.last': 'Ghost' }, 'name occupation', function (err, person) {
if (err) return handleError(err);
console.log('%s %s is a %s.', person.name.first, person.name.last, person.occupation) // Space Ghost is a talk show host.
})
答案 0 :(得分:0)
在文档中找到它。 $or
运算符可以完成此操作:
var Person = mongoose.model('Person', yourSchema);
// find each person with a last name matching 'Ghost', selecting the `name` and `occupation` fields
Person.findOne({'$or': [{ 'name.last': 'Ghost1' }, {'name.last': 'Ghost2' }], 'name occupation', function (err, person) {
if (err) return handleError(err);
console.log('%s %s is a %s.', person.name.first, person.name.last, person.occupation) // Space Ghost is a talk show host.
})