相关疑难解决方法(0)

Mongoose在其引用模型的Model by字段上嵌套查询

在stackoverflow上似乎有很多关于这个主题的Q/A,但我似乎无法在任何地方找到确切的答案.

是)我有的:

我有公司和人员模型:

var mongoose = require('mongoose');
var PersonSchema = new mongoose.Schema{
                        name: String, 
                        lastname: String};

// company has a reference to Person
var CompanySchema = new mongoose.Schema{
                        name: String, 
                        founder: {type:Schema.ObjectId, ref:Person}};
Run Code Online (Sandbox Code Playgroud)

我需要的:

找到所有姓氏为"Robertson"的人成立的公司

我尝试了什么:

Company.find({'founder.id': 'Robertson'}, function(err, companies){
    console.log(companies); // getting an empty array
});
Run Code Online (Sandbox Code Playgroud)

然后我认为Person不是嵌入式的,而是引用的,所以我使用populate来填充创始人Person,然后尝试使用find和'Robertson'lastname

// 1. retrieve all companies
// 2. populate their founders
// 3. find 'Robertson' lastname in populated Companies
Company.find({}).populate('founder')
       .find({'founder.lastname': 'Robertson'})
       .exec(function(err, companies) {
        console.log(companies); // getting an empty array again
    }); …
Run Code Online (Sandbox Code Playgroud)

populate mongoose mongodb node.js

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

mongodb ×1

mongoose ×1

node.js ×1

populate ×1