mongoose联合查询populate怎么用的?

发布于 2022-09-05 02:28:27 字数 981 浏览 9 评论 0

// 创建一个人物数据结构
let personSchema = mongoose.Schema({
        _id:Number,
        name:String,
        post:[{
            type:Number,
            ref:'postModel'
        }]
});

console.log(mongoose.Schema.ObjectId);
// 根据结构生成人物模型
let personModel = mongoose.model('person',personSchema);

let ObjectId = mongoose.Types.ObjectId;

// 创建一个文章数据结构
let postSchema = mongoose.Schema({
        _id:Number,
        title:String,
        author:{
            type:Number,
            ref:'personModel'
        },
        content:String
});

// 创建文章模型
let postModel = mongoose.model('post',postSchema);

开始查询

postModel.find({})
    .populate('people')
    .exec((err,data)=>{
        console.log(data)
    });
    

clipboard.png

这是什么原因呢?
换过用ObjectId查询,也是一样的结果,mongoose版本4.10.6,node版本8.1.0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

箹锭⒈辈孓 2022-09-12 02:28:28
        post:[{
            type:Schema.ObjectId,
            ref:'postModel'
        }]

另外要注意ref的字段要和你注册的model的名称一致, 否则populate操作不会成功
参考这个
https://github.com/YueminHu/l...
建议去学习下MDN的图书馆例子

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文