Mongoose 通过父级保存时,不会保存我的子文档
我在尝试通过父文档保存子文档时遇到了一些问题,然后是正式文档Mongoose 通过父级保存时,不会保存我的子文档,mongoose,Mongoose,我在尝试通过父文档保存子文档时遇到了一些问题,然后是正式文档 var UserSchema = new mongoose.Schema({ name: String, Animals : [{ type: mongoose.Schema.Types.ObjectId, ref: 'Animal' }], }); var AnimalSchema = new mongoose.Schema({ name: String }); 我以前是这样工作的: function(User, c
var UserSchema = new mongoose.Schema({
name: String,
Animals : [{ type: mongoose.Schema.Types.ObjectId, ref: 'Animal' }],
});
var AnimalSchema = new mongoose.Schema({
name: String
});
我以前是这样工作的:
function(User, callback) {
var Animal = new AnimalSchema({ name: 'bob' });
Animal.save(function() {
User.Animals.push(Animal._id);
User.save(callback);
});
}
一切都很顺利,但我从医生那里看到我们可以写:
function(User, callback) {
var Animal = new AnimalSchema({ name: 'bob' });
User.Animals.push(Animal);
User.save(callback);
}
但我不能百分之百地工作:
我的子文档嵌套在我的文档中,但我无法find()
it,它作为常规键是父文档的一部分
另外,当我有另一个嵌套的bloc时,比如:
var UserSchema = mongoose.Schema({
name: String,
Animals : {
dogs: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Animal' }],
cats: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Animal' }]
}
});
我确实:
function(User, callback) {
var Animal = new AnimalSchema({ name: 'bob' });
User.Animals.dogs.push(Animal);
User.save(callback);
}
在我的User.dogs
数组中,我只有一个ObjectId
作为项(由于与上面相同的原因,我无法填充该项)
我错过什么了吗?我使用的是Mongoose3.8,他们说我们应该能够用这种方式查询tu子文档
我们真的需要两组指针是有争议的,因为它们可能会不同步。相反,我们可以跳过填充,直接查找()我们感兴趣的故事。