Node.js 猫鼬赢了';在更新架构声明后更新新字段

Node.js 猫鼬赢了';在更新架构声明后更新新字段,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我只是注意到,当我更新模式定义并添加一个字段时,例如“name:String”,然后尝试使用 People.update( { _id: user_id }, { $set: { name: 'something' } } ) 猫鼬不会更新我的属性 我在响应中不断得到修改:0 我找到的唯一解决方法是放弃收集,然后新文档将完美地工作 我错过什么了吗?mongoose是否会在mongodb上以某种方式“缓存”集合的模式,然后需要“删除”以“重新加载”属性?我认为findbyidandupdate

我只是注意到,当我更新模式定义并添加一个字段时,例如“name:String”,然后尝试使用

People.update( { _id: user_id }, { $set: { name: 'something' } } ) 
猫鼬不会更新我的属性

我在响应中不断得到修改:0

我找到的唯一解决方法是放弃收集,然后新文档将完美地工作


我错过什么了吗?mongoose是否会在mongodb上以某种方式“缓存”集合的模式,然后需要“删除”以“重新加载”属性?

我认为findbyidandupdate将为您完成此任务。请尝试使用此链接


我认为FindByiandUpdate将为您完成这项任务。请尝试使用此链接


能否请您共享您的人员模型,并使用带有更新的回调

见下文,效果良好

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var User = mongoose.model('User', { email: String, name: String });
//First added only email and used save to save the document.
//var user = new User({ email: 'john.due@example.com' });
User.update({ _id: '55fbbb268e7307dc0bf9ae92' }, { $set: { name: 'John Due' }}, function(err, result) {
    if(err) throw err;
    console.log(result)
 });

你可以分享你的人物模型,也可以使用更新的回调

见下文,效果良好

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var User = mongoose.model('User', { email: String, name: String });
//First added only email and used save to save the document.
//var user = new User({ email: 'john.due@example.com' });
User.update({ _id: '55fbbb268e7307dc0bf9ae92' }, { $set: { name: 'John Due' }}, function(err, result) {
    if(err) throw err;
    console.log(result)
 });

否在MongoDB中没有存储架构定义。但是,如果将属性设置为已存在的值,mongodb将报告0已修改,因为没有任何内容可修改。您还说您正在更新模式定义,但是否在更改之间重新启动应用程序?您是否启用了此处未提及的其他插件。最好的确定方法是启用调试`mongoose.set(“debug”,true)。然后,您将看到所发送的方法调用是否与所调用的不同。但是首先要检查其他方面。不,MongoDB中没有存储模式定义。但是,如果将属性设置为已存在的值,mongodb将报告0已修改,因为没有任何内容可修改。您还说您正在更新模式定义,但是否在更改之间重新启动应用程序?您是否启用了此处未提及的其他插件。最好的确定方法是启用调试`mongoose.set(“debug”,true)。然后,您将看到所发送的方法调用是否与所调用的不同。但是先检查一下其他的东西。当设置为某个_id时,它可以正常工作,但是当设置为“null”或“undefined”时,它不会为我更新。更新显示nModified 0在删除集合并再次创建它之后,它可以工作,这让我感到困惑和担心,因为我无法在生产环境中删除集合。当设置为某个_id时,它可以工作,但当设置为“null”或“undefined”时,它不会为我更新。更新显示nModified 0在删除集合并再次创建它之后,它可以正常工作,这让我感到困惑和担心,因为我无法在生产环境中删除集合。