V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NELSONCHI
V2EX  ›  Node.js

求助: mongoose 中 update 用 save 修改失效,是什么原因?

  •  
  •   NELSONCHI · 2016-04-18 11:13:16 +08:00 · 5188 次点击
    这是一个创建于 2935 天前的主题,其中的信息可能已经有所发展或是发生改变。

    var mongoose=require('mongoose');
    var db=mongoose.connect('mongodb://localhost/words');
    var wordSchema=require('./word_schema.js').wordSchema;
    var Words=mongoose.model('Words',wordSchema);
    mongoose.connection.once('open',function(){
      var query=Words.findOne().where('word','book');
      query.exec(function(err,doc){
        console.log('is document new? '+doc.isNew);
        console.log('\nbefore save:');
        console.log(doc.toJSON());
        doc.set('word','Book');
        doc.set('first','B');
        console.log('\nmodified fields:');
        console.log(doc.modifiedPaths());
        doc.save(function(err,res){
          console.log(res);
          mongoose.disconnect();
          // Words.findOne({word:'Book'},function(err,res){
          // console.log('\nafter save:');
          // console.log(res);
          // mongoose.disconnect();
          // });
        });
      });
    });

    数据库: https://github.com/CHINQ/angularnodemongodb/blob/master/mongodb/data/generate_data.js word_schema.js : https://github.com/CHINQ/angularnodemongodb/blob/master/mongodb/word_schema.js

    2 条回复    2016-04-19 10:36:40 +08:00
    Mirachael
        1
    Mirachael  
       2016-04-18 11:27:03 +08:00
    Model.update(query, update, {new: true}, function(err, result) {})

    new: true 表示返回修改后的值
    forl
        2
    forl  
       2016-04-19 10:36:40 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   819 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 22:32 · PVG 06:32 · LAX 15:32 · JFK 18:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.