【发布时间】:2021-07-30 17:19:57
【问题描述】:
我正在尝试使用节点 js 更新 mangodb 数据库中的一些数据,但文档不会更新。我收到此日志消息{ n: 0, nModified: 0, ok: 1 }
这是我的代码:
我成功连接到数据
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/cinemas')
.then(()=> console.log('connected to mongoDB....'))
.catch(err => console.log('Could not connect to mongoDB because',err));
这是架构
const moviesSchema = new mongoose.Schema({
title: String,
acotrs:[String],
genre: [String],
date: {type: Date, default: Date.now},
onCinema :Boolean
});
模型连接
const Movie = mongoose.model('Movie',movieSchema);
我可以毫无问题地搜索数据库,唯一的问题是更新功能不会更新数据库。这是函数:
async function updateMovie(id){
const result = await Movie.update({_id: id},{
$set:{
title: 'New Movie',
onCinema: false
}
});
console.log(result);
}
updateMovie('5a68fdf95db93f6477053ddd');
我在控制台{ n: 0, nModified: 0, ok: 1 } 上收到此日志,告诉我没有更新。请帮忙。我做错了什么?
【问题讨论】:
-
{ n: 0 }表示数据库没有为您的查询找到任何匹配项,您确定存在以5a68fdf95db93f6477053ddd为id 的文档吗? -
@AsafAviv 是的,有一个具有该 ID 的文档
-
尝试运行
const result = await Movie.findById('5a68fdf95db93f6477053ddd'); console.log(result);是否找到文档? -
@AsafAviv 我没有从控制台获得日志,只有连接到数据库的消息
-
该文档是否存在于
movies集合中?
标签: javascript node.js mongodb mongoose