Как заполнять поля после mapReduce с помощью Mongoose.js?

Я хочу заполнить поля после mapReduce.

mongoose.connection.db.collection('createdCollectionNameForResults', function(err, collection) { 
    collection.find({}).populate('ref_field').toArray(function(err, items) { 
           res.send(200, items)
    });
});

Но здесь это дает ошибку:

TypeError: объект # не имеет метода 'populate'

Потому что collection.find ({}) возвращает курсор mongodb. Как я могу заполнить ref_field?

0
nl ja de
Да, но как я должен это делать?
добавлено автор Burak, источник
Вы вызываете find в коллекцию родных драйверов. Вам нужно позвонить find в модель Mongoose для populate для работы.
добавлено автор JohnnyHK, источник
Создайте схему и модель для своей коллекции, которую создает mapReduce , а затем запрашивает ее, как и любую другую модель мангуста. См. документы .
добавлено автор JohnnyHK, источник

1 ответы

Учитывая, что у вас есть схема, зарегистрированная в мангусте с именем «createdCollectionNameForResults»,

var Model = mongoose.model('createdCollectionNameForResults');
Model.find({}).populate('ref_field').exec(function(err, results){
   console.log(err, results); 
});
1
добавлено
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078