【问题标题】:How to save schemas inside schemas using mongoose?如何使用猫鼬将模式保存在模式中?
【发布时间】:2016-11-18 21:13:58
【问题描述】:

有没有办法将架构保存在另一个架构中?因为没有保存嵌入式架构,所以我试图这样做没有结果。这是我的架构:

var event = mongoose.Schema({
    name: String,
    location: String
});

var user = mongoose.Schema({
    name: String,
    events: [event]
});

var User = new mongoose.model('User', user);

我使用了mongoose的Model.save()函数,但是不知道有没有其他函数可以将文档保存到mongo数据库。另外,当我查询数据库并检索保存的数据时,它显示events: [],因此没有保存任何数据。有什么想法吗?

编辑:这是我用来创建对象的代码:

var kratos = new user({
    name: 'Kratos',
    events: [
        {
            name: 'Kill gods',
            location: 'Bay shore'
        },{
            name: 'Collect orbs',
            location: 'Olympus'
        }
    ]
}); 

【问题讨论】:

标签: node.js mongodb mongoose mongoose-schema


【解决方案1】:

将 User 模型稍微更改为以下内容:

var User = mongoose.Schema({
    name: String,
    events: []
});

然后,您需要创建新的事件对象。这样的事情会做:

var events = [];

var newEvent = new Event({
    name : "Name",
    location: "Place"
});

events.push(newEvent);

var kratos = new User({
    name: 'Kratos',
    events: events
});

【讨论】:

    【解决方案2】:

    我想您可以将其作为一个简单的解决方案吗?

    var user = mongoose.Schema({
        name: String,
        events: {
            name: String,
            location: String
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 2018-08-27
      • 2022-10-07
      • 1970-01-01
      • 2017-05-07
      • 2012-02-02
      • 2017-07-08
      • 2017-11-28
      • 2016-08-05
      相关资源
      最近更新 更多