如何在mongodb nodejs中搜索两个数组中的两个字段

时间:2013-11-14 00:47:24

标签: arrays node.js mongodb

我的mongodb记录中的两个字段是:第一个和最后一个

我看到两个数组: first_array = [bob,gary,john] last_array = [史密斯,埃文斯,约翰逊]

两个数组中的名字和姓氏之间存在一对一的对应关系。我想找到BobSmith,GaryEvans和JohnJohnson的唱片。

find({first:{$ in:first_array}})会找到所有与姓氏匹配但不是姓氏的记录 find({last:{$ in:last_array}})将找到所有与姓氏匹配但不是名字的记录 find({first:{$ in:first_array},last:{$ in:last_array}})将找到我的所有记录,但它也会找到BobEvans和GarySmith等记录(如果存在)

提前感谢任何建议, 加里

1 个答案:

答案 0 :(得分:2)

where = {};
where["$or"] = [ ];
for (i=0; i<first_array.length; i++) {
    where["$or"].push( {"first": first_array[i], "last":last_array[i]} );
}

db.collection(where)