【问题标题】:populate embedded document on mongoose nodejs在 mongoose nodejs 上填充嵌入文档
【发布时间】:2015-05-15 17:13:55
【问题描述】:

我目前正在使用 nodeJs 和 mongoose,我想填充一个子文档

这是我的主要模型

var postSchema = require('./post.js');
var blogSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    postSchema: [postSchema]
});

var blog = mongoose.model('blog', blogSchema);

module.exports = blog;

这是帖子的子文档

var mongoose  = require('mongoose');
var postSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    rol: {
        type: String,
        required: true
    }
});

var post = mongoose.model('post', post);

module.exports = post;

我想在“博客”架构中添加几个“帖子”,但我不知道如何,我尝试通过我现在正确执行来填充它!我在猫鼬上读到了“填充”,但我根本不理解,有人可以解释一下吗?

【问题讨论】:

标签: node.js mongodb express mongoose


【解决方案1】:

您不能在 mongoose 中使用外部 Eschemas 数组。您必须在同一个文件中定义它们,或者只保存 _id 的数组并创建一个集合 appart。

查看 mongoose 文档。他们谈论这个:http://mongoosejs.com/docs/2.7.x/docs/embedded-documents.html

var mongoose  = require('mongoose');
var blogPost = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    rol: {
        type: String,
        required: true
    }
});

var blog = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    postList: [blogPost]
});

mongoose.model('blog', blogSchema);

module.exports = blog;



var Blog = mongoose.model('blog');

// create a blog post
var theBlog = new Blog();

// create a comment
theBlog.postList.push({ title: 'My comment' });

theBlog.postList.save(function (err) {
  if (!err) console.log('Success!');
});

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2012-04-16
    • 2011-09-06
    • 2014-08-06
    • 2012-07-05
    • 2017-01-27
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多