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