Мангуст: Найти из документа справочный объект - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь найти данные из коллекции.

Модель для коллекции 'USER':

var model = new Schema({
    userName: String,
    password: String
});
module.exports = mongoose.model('user', model);

Модель для 'BLOG'

var model = new Schema({
    title: String,
    createdBy: { type: Object, ref: 'user' }
});
module.exports = mongoose.model('blog', model);

Мой поисковый код для коллекции блогов:

objModel.find({ 'createdBy.userName': 'test_user' }).populate('createdBy')
.exec(function (err, lstBlog) {
    console.log(lstBlog.length);
});

Но не смог получить ни одной записи. В базе данных есть 2 записи для 'test_user'.

1 Ответ

0 голосов
/ 06 июля 2019

Вам необходимо внести некоторые изменения в вашу модель BLOG:


var mongoose = require('mongoose');
var SCHEMA = mongoose.Schema;

var model = new Schema({
    title: String,
    createdBy: { type: SCHEMA.Types.ObjectId, ref: 'user' }
});

module.exports = mongoose.model('blog', model);


и тогда будет работать следующий запрос

blog.find({}).populate(
      {
        path: 'createdBy',
        match: {'userName': 'test_user' }
      }
    ).exec(function (err, lstBlog) {
    console.log(lstBlog.length);
});;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...