2016-02-04 2 views
3

Я пытаюсь использовать условия запроса в методе заполнения. если условие используется тогда еще все записи заселены, но те, которые не удовлетворяют условию есть заселена поле установлено нулевое значение, Например:Узел mongoose заполняет условие не возвращает ожидаемые результаты

var query = BookModel.find(); 
query.populate('author','name',{name:'author1'}); 
query.find(function(err,books){ 
    console.log(books); 
}); 

Then the output is: 
[ { author: { _id: 4ea0db52e09aa6aad2e831fe, name: 'author1' }, 
    title: 'book1', 
    _id: 4ea0dbebc191848704000005 }, 
    { author: null, 
    title: 'book2', 
    _id: 4ea0dbebc191848704000006 } , 
    { author: null, 
    title: 'book3', 
    _id: 4ea0dbebc191848704000007 } , 
    { author: null, 
    title: 'book4', 
    _id: 4ea0dbebc191848704000008 } ] 

Однако, я ожидаю только 1-й рекорд в выходном результате. Как я могу решить эту проблему?

ответ

0

Посмотрите, может ли это вам помочь, мне нужна дополнительная информация о проблеме, это возможное решение.

BookModel.find() 
    .populate({ 
     path: 'author', 
     match: { author: 'author1' }, 
     select: 'name' // I'm suppossing you want to select "name" field, if not, delete this line. 
    }).find(function(err,books){ 
     console.log(books); 
    }); 

или вы можете сделать это:

var query = BookModel.find({name: 'author1'}); 
query.populate('author','name'); 
query.find(function(err,books){ 
    console.log(books); 
}); 
+0

такие же результаты – user233232

0

Вы можете добавить дополнительный запрос в результатах, чтобы отфильтровать аннулирует:

var query = BookModel.find(); 
query.populate('author','name',{name:'author1'}); 
query.find(function(err, books){ 
    books = books.filter(function(b){ return b.author; }); 
    console.log(books, null, 4); 
}); 

консольного вывода

[ 
    { 
     "author": { 
      "_id": "4ea0db52e09aa6aad2e831fe", 
      "name": "author1" 
     }, 
     "title": "book1", 
     "_id": "4ea0dbebc191848704000005" 
    } 
] 
+0

Это простое решение js, в mongo нет встроенного решения? – user233232

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