我在用mongoose .js在一个 node 上.js服务器连接到mongodb和

SubSchema = new Schema({
    _member:     {type: ObjectId, ref: 'Member'},
    members:     [{type: ObjectId, ref: 'Member'}],
    created:     { type: Date, default: Date.now }
});
mongoose.model('SubModel', SubSchema);

MainSchema = new Schema({
    _member:     {type: ObjectId, ref: 'Member'},
    subs:        [SubSchema],
    members:     [{type: ObjectId, ref: 'Member'}],
    created:     { type: Date, default: Date.now }
});
var MainModel mongoose.model('MainModel', MainSchema);

我用这样的命令拉它

var q = MainModel.find({})
                 .sort('created', -1)
                 .limit(25)
                 .populate("_member")
                 .populate("subs._member")
                 .populate("subs.members");

q.execFind(function(err, mains){
    //mains[0].subs[0].members - will always be empty why?
});

我的问题是我不能得到潜艇.要填充甚至加载成员数组,它只会一直显示为空array.

我试过了.填充("subs.members"),即使subs_成员负载很好

推荐答案

试试这个

    SubSchema = new Schema({
        _member:     {type: ObjectId, ref: 'Member'},
        members:     [{type: ObjectId, ref: 'Member'}],
        created:     { type: Date, default: Date.now }
    });
    var SubModel = mongoose.model('SubModel', SubSchema);//add

    MainSchema = new Schema({
        _member:     {type: ObjectId, ref: 'Member'},
        subs:        [SubSchema],
        members:     [{type: ObjectId, ref: 'Member'}],
        created:     { type: Date, default: Date.now }
    });

    var MainModel = mongoose.model('MainModel', MainSchema);

    MainModel.find({})
             .sort('created', -1)
             .limit(25)
             .populate("_member")
             .populate("subs._member")
             .exec(function(err, mains){

                 //add
                 SubModel.populate(mains,{
                     path:'subs.members'
                 },function(err,mains){
                    //mains[0].subs[0].members - is not empty
                 });
             });

Mongodb相关问答推荐

mongoose正在抛出Schema的错误has';t已在next.js中注册

如何在Mongodb Mongoose Nodejs中提取不等于一组值的字段

使用特定关键字和邻近度进行查询和过滤

优化游戏应用程序的反馈表单后端设计

如何在 MongoDB 中已经存在的 slug 中添加一个随机数?

如何将以下聚合查询转换为 bson 并在 golang 中执行

如何在 Mongo 聚合管道中获取限制之前的计数

findOneAndUpdate 和 findOneAndReplace 有什么区别?

如何检索 MongoDb 集合验证器规则?

MongoDB获取聚合查询的executionStats

使用 nodejs/mongoose 部分更新子文档

Golang + MongoDB 嵌入类型(将一个 struct 嵌入到另一个 struct 中)

C# mongodb driver 2.0 - 如何在批量操作中更新插入?

docker 在不同的端口上运行 mongo 映像

是否有支持 MongoDB 和 Devise 的 Rails 管理界面?

Java + MongoDB:更新文档中的多个字段

Meteor订阅不更新集合的排序顺序

MongoDB 用 $type 匹配一个数组?

show dbs 给出Not Authorized to execute command错误

Mongodb Compass 无法在 Ubuntu 18.10 中打开