我想有条件地附加$或查询,但查询无法接收我想在db中搜索的数据
它一直在告诉我:
“错误:MongoError:无法规范查询:BadValue $和/ $或/ $也不能是非空数组”
或者如果我初始化查询。$或as {}
“错误:MongoError:无法规范查询:BadValue $或需要数组”
感谢!
例如:
var user = {
name:"Toby",
gender:"Female",
contact:[
{email:"123@gmail.com"},
{email:"APPLE@gmail.com"},
{email:"news456@gmail.com"}]};
var query = {};
var q = ['123@gmail.com','news456@gmail.com'];
query.name = user.name;
if(user.contact!=null){
query.$or = [];
query.$or['contact.0.email'] = q[0];
query.$or['contact.1.email'] = q[1];
}
答案 0 :(得分:2)
$或者需要是一系列可能的匹配条件。你可以这样做:
var user = {
name:"Toby",
gender:"Female",
contact:[
{email:"123@gmail.com"},
{email:"APPLE@gmail.com"},
{email:"news456@gmail.com"}]};
var query = {};
var q = ['123@gmail.com','news456@gmail.com'];
query.name = user.name;
if(user.contact!=null){
query.$or = [];
query.$or.push({'contact.email': q[0]});
query.$or.push({'contact.email': q[1]});
}