Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Javascript 在MongoDB中更新文档时出现问题_Javascript_Mongodb - Fatal编程技术网

Javascript 在MongoDB中更新文档时出现问题

Javascript 在MongoDB中更新文档时出现问题,javascript,mongodb,Javascript,Mongodb,我发现在更新插入数据库的文档时有问题。 我已经创建了一个网页,可以在其中将文档插入数据库,并在同一页上检索和显示它。但是,我无法更新现有文档 当我尝试使用objectID更新文档时,数据没有得到更新 我想在做什么方面得到帮助或建议 仅供参考:我在这里使用的数据库是'iot',集合是:'metadata' 我是JS和MongoDB的初学者。 我需要一些帮助 var express=require('express'); var router=express.router(); var asser

我发现在更新插入数据库的文档时有问题。 我已经创建了一个网页,可以在其中将文档插入数据库,并在同一页上检索和显示它。但是,我无法更新现有文档

当我尝试使用
objectID
更新文档时,数据没有得到更新

我想在做什么方面得到帮助或建议

仅供参考:我在这里使用的数据库是
'iot'
,集合是:
'metadata'

我是JS和MongoDB的初学者。 我需要一些帮助

var express=require('express');
var router=express.router();
var assert=require('assert');
变量url=”mongodb://localhost:27017";
const MongoClient=require('mongodb')。MongoClient;
const client=新的MongoClient(url);
const dbName='iot';
/*获取主页*/
router.get('/',函数(req,res,next){
res.render(“索引”);
});
router.get('/get data',函数(req、res、next){
var resultArray=[];
连接(url,函数(err,客户端){
assert.equal(null,err);
const db=client.db(dbName);
var cursor=db.collection('metadata').find();
cursor.forEach(函数(doc,err){
assert.equal(null,err);
结果推送(doc);
},函数(){
client.close();
res.render('index',{items:resultArray});
});
});
});
router.post('/insert',函数(req、res、next){
变量项={
标题:req.body.title,
内容:req.body.content,
作者:req.body.author
}
连接(url,函数(err,客户端){
assert.equal(null,err);
const db=client.db(dbName);
db.collection('metadata').insertOne(项、函数(错误、结果){
assert.equal(null,err);
console.log(“插入的项”);
client.close();
});
});
res.redirect('/');
});
router.post('/update',函数(req,res,next){
变量项={
标题:req.body.title,
内容:req.body.content,
作者:req.body.author
};
var id=req.body.id;
连接(url,函数(err,客户端){
assert.equal(null,err);
const db=client.db(dbName);
db.collection('metadata').updateOne({“\u id”:objectId(id)},{$set:item},函数(err,result){
assert.equal(null,err);
console.log(“项目更新”);
db.close();
});
});
///res.redirect('/');
});
router.post('/delete',函数(req,res,next){
var id=req.body.id;
connect(url、函数(err、db){
assert.equal(null,err);
db.collection('metadata').deleteOne({“\u id”:objectId(id)},函数(err,result){
assert.equal(null,err);
console.log('Item deleted');
db.close();
});
});
});
module.exports=路由器
主仪表板
插入数据
标题
内容
作者
插入
获取数据
{{{#每项}
标题:{{this.Title}}
内容:{{this.Content}}
作者:{{this.Author}}
ID:{{这个。{U ID}}
{{/每个}}
更新数据
身份证件
标题
内容
作者
更新
删除数据
身份证件
删除

尝试导入ObjectID,我在那里看不到它

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url, {useUnifiedTopology: true});


var ObjectID = require('mongodb').ObjectID;

// In your request
{ "_id": ObjectID(req.body.id)}, // Filter

//in your code 
client.connect(function(err, client){
    assert.equal(null, err);
    const db = client.db(dbName);
    db.collection('metadata').updateOne({ "_id": ObjectID(req.body.id)}, {$set: item}, function(err, result) {
      assert.equal(null, err);
      console.log('Item updated');
     db.close();
    });
  });

更新了问题标题以使其更清楚。编辑问题正文以澄清正在经历的问题谢谢@ABDELJALIL AIT ETALEB它在某种程度上起作用,但会抛出错误和崩溃。我需要再次启动服务器以查看更新的数据。你能帮我出去一下吗this@sanjay并将路由中使用的MongoClient替换为constante“client”,该客户端是您从使用它连接的MongoClient类启动的,每次都不给它url