Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongodb通过ObjectID更新_Node.js_Mongodb - Fatal编程技术网

Node.js mongodb通过ObjectID更新

Node.js mongodb通过ObjectID更新,node.js,mongodb,Node.js,Mongodb,我想更新我的文档,但它不能100%工作 // Initialize connection once MongoClient.connect("mongodb://localhost:27017/testDB", function(err, database) { //"mongodb://localhost:27017/test" if(err) throw err; db = database; }); 我的收藏行看起来像: {“_id”:ObjectId(“53f9379ce95

我想更新我的文档,但它不能100%工作

// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/testDB", function(err, database) { //"mongodb://localhost:27017/test"
  if(err) throw err;

 db = database;

});
我的收藏行看起来像:

{“_id”:ObjectId(“53f9379ce9575bbe9ec29581”),“name:paco”, “身份:学生”}

现在,如果我想更新文档上的行,如下所示:

db.collection('user', function(err,  collection){
                collection.update({'_id':ObjectID(req.session.loggedIn)}, {image : filename}, {w:1}, function(err, result){
                    console.log(result);
我得到的只是:

{“_id”:ObjectId(“53f9379ce9575bbe9ec29581”),“image:filename”}

如何进行更新以获得以下数据??:

{“_id”:ObjectId(“53f9379ce9575bbe9ec29581”),“name:paco”, “状态:学生”,“图像:文件名”}


执行
更新
的方法将使用指定的
\u id
检索集合中的文档,然后它将使用指定为第二个参数的内容替换此文档的内容。在您的情况下,它将检索具有
\u id
53f9379ce9575bbe9ec29581
的文档,并将现有字段替换为您传递的字段
image:filename
(这意味着现有字段将被删除,正如您所注意到的)

您要做的是使用
$set
操作符。此操作员将不会触摸检索到的文档,而只修改您指定的字段,或者在该字段不存在时添加该字段

因此,您的更新命令应该如下所示:

db.collection('user').update({'_id':ObjectID(req.session.loggedIn)}, {$set: {image : filename}}, {w:1}, function(err, result){
    console.log(result);

按_id更新记录

var ObjectID = require('mongodb').ObjectID; 
exports.updateUser = function(req, res) {

     var collection = db.collection('users');

     collection.update(where,  $set:req.body, function(err, result) {
         if (err) {
             console.log('Error updating user: ' + err);
             res.send({'error':'An error has occurred'});
         } else {
             console.log('' + result + ' document(s) updated');
             res.send(user);
         }
     });
 }

我需要ObjectID