2016-07-26 2 views
1

Как мы можем получить документы из коллекции mongo db, передав массив объектов в узле js server. Например,Извлечение документа путем передачи массива объектов в mongoose

var arr = [ 
    { "name": "ABC", "location": "NY"}, 
    { "name": "CDE", "location": "LA"}, 
    { "name": "EFG", "location": "NZ"} 
]; 

Целью является получение документов, которые удовлетворяют этому имени и комбинации местоположения.

+0

Вы можете использовать 'db.collection.find()', дополнительную информацию https://docs.mongodb.com/manual/reference/method/db.collection.find/ –

ответ

0

Учитывая массив вы указали, вы можете просто массив в $or запроса (при условии, Mongoose), он ищет документы с любой из этих 3-х условий выполнивших:

var arr = [ 
    { "name": "ABC", "location": "NY"}, 
    { "name": "CDE", "location": "LA"}, 
    { "name": "EFG", "location": "NZ"} 
]; 

Model.find({$or: arr}, function(err, docs) { 
     // do something with docs, docs are the documents returned from the query 
}); 

Модель является модель/схема для коллекции, которую вы используете.

+0

Нет, это не возвращает данные. Если какой-либо из объектов не существует в коллекции, мы также можем получить результат. Но $ или возвращает мне пустой массив –

+0

вы можете привести пример того, о чем вы говорите выше? я не думаю, что понимаю, что вы пытаетесь сделать. ответ, который я дал, вернет документы, которые соответствуют одному из этих условий, это то, что вы хотите? – devonJS

+0

Да, я пытаюсь получить данные о магазине из коллекции магазина, где соответствуют itemName, itemRef, itemCategory, itemSpecification. Моя передающая полезная нагрузка находится в массиве, как указано в примере. –

0

Предлагаемое решение по вашему запросу.

var filter = { 
     $or: arr 
} 
db.coolection.find(filter, function(err, docs){ 
     //your functionality 
}); 

Это поможет.

Смежные вопросы