无法使用 mongodb 在 node.js 中构建“$or”查询
cannot build an '$or' query in node.js with mongodb
我想有条件地附加一个$or查询,但是查询收不到我想在数据库中搜索的数据
它一直告诉我:
"Error :MongoError: Can't canonicalize query: BadValue $and/$or/$nor must be a nonempty array"
或者如果我初始化查询。$或者作为{}
"Error :MongoError: Can't canonicalize query: BadValue $or needs an array"
谢谢!
例如:
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];
}
$or 需要是可能匹配条件的数组。你可以这样做:
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]});
}
我想有条件地附加一个$or查询,但是查询收不到我想在数据库中搜索的数据
它一直告诉我:
"Error :MongoError: Can't canonicalize query: BadValue $and/$or/$nor must be a nonempty array"
或者如果我初始化查询。$或者作为{}
"Error :MongoError: Can't canonicalize query: BadValue $or needs an array"
谢谢!
例如:
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];
}
$or 需要是可能匹配条件的数组。你可以这样做:
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]});
}