当字段不在模式中时,Mongoose使用点表示法

时间:2013-04-30 16:27:37

标签: node.js mongodb express mongoose

我有一个Dog的模式,严格设置为false,允许保存模式中没有的值。但是,我似乎无法使用点表示法来设置如下值:

var dog = new Dog();
dog.name = "Barry"; // works because name is in schema
dog.notInSchema = "This should work!" // doesn't work because its not in the schema
dog.save(...)

这样的事情确实有效:

var dog = new Dog({name : "kyle", notInSChema : "This works and saves" })
dog.save(...)

我需要在这里使用点符号和不在架构中的字段,我该怎么做?

1 个答案:

答案 0 :(得分:0)

在Mongoose模型上设置项目的最佳方法是使用Model#set。在您的示例中,这将是:

var dog = new Dog();
Dog.set('name', 'Barry');
Dog.set('notInSchema', 'this does work');
dog.save(callback);

请参阅http://mongoosejs.com/docs/api.html#document_Document-set