2016-07-15 49 views
0

有一种方法可以将模式保存在另一个模式中吗?因为我试图做到没有结果,因为嵌入式模式没有保存。这里是我的架构:如何使用猫鼬在模式内保存模式?

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

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

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

我用猫鼬的Model.save()函数,但我不知道任何其他功能的存在,将文档保存到数据库蒙戈。另外,当我查询数据库并检索保存的数据时,它显示events: [],因此没有保存数据。有任何想法吗?

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

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

可能的复制 - http://stackoverflow.com/questions/8737082/mongoose-schema-within-schema – deeveeABC

+0

该链接询问如何架构添加到另一个。我已经做到了,我的主要问题是它没有存储在数据库中。 – ixman

回答

0

我想你可以做的,虽然这是一个简单的解决方案?

​​
+0

我可以用这种方式存储很多事件吗? – ixman

0

更改用户型号略有以下几点:

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 
});