[英]mongodb node - find documents by array of json objects
我在一个nodejs项目中使用mongodb,其中有一组用户:
{ "_id" : ObjectId("1"), "firstName": "John", "lastName" : "Doe", "age":20 }
{ "_id" : ObjectId("2"), "firstName": "Jane", "lastName" : "Doe", "age":22 }
{ "_id" : ObjectId("3"), "firstName": "Bob", "lastName" : "Smith","age": 32 }
{ "_id" : ObjectId("4"), "firstName": "John", "lastName" : "Smith","age":40}
{ "_id" : ObjectId("5"), "firstName": "John", "lastName" : "Deer","age":66}
我想查询一个返回文档ID的数组,该ID由用户的名字和姓氏匹配,该名字和姓氏由我在此处给出的数组排序
这是我要弄弄的东西:
var usersToFind = [
{ firstName: "John", lastName: "Smith"},
{ firstName: "John", lastName:"Doe"}
];
db.collection('users').then(users => users.aggregate([
{ $match : { /* what to put here? */ } },
{ $addFields : { '__order' : { $indexOfArray : [usersToFind, /* Missing here something */} } },
{ $sort : { '__order' : 1 } }
]).toArray(results => {
console.log(results);
// Should print ["ObjectId(4)", "ObjectId(1)"];
});
由于我的有限知识,我可能会缺少有关如何使用mongodb的基本知识。
如果您能帮助我解决查询或向我展示实现此查询的更好方法,将不胜感激。
我总是可以迭代我的usersToFind
数组并一个接一个地查找文档,但是我想在这里使用一个查询。 另一种方法是使用$or
和$and
谢谢
您可以使用find()
。 这是一个例子:
db.collection('users').find(
{
"firstName": "John",
"lastName": "Doe"
}
)
这是文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.