猫鼬:从参考对象文档中查找



我正在尝试从集合中搜索数据。

"用户"集合的模型:

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

"博客"模型

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"。

您需要在"博客"模型中进行一些更改:


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);
});;

最新更新