我正在做一个学习项目,创建一个简单的Web应用程序来编写和存储待办事项,这时我遇到了一个我无法解决的问题.我用Mongoose模块创建了这个简单的JavaScript应用程序来重现这个问题.它创建名为"test"
的item1
个对象并将其存储在数据库中.然后,它将删除名称为"test"
的所有对象.正如你在截图上看到的,这款应用成功地创建并存储了ignores deleting them, which is my initial goal个对象.
我提前感谢所有人的帮助.
Screenshot describing the problem个
我的JavaScript代码:
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const app = express();
mongoose.connect("mongodb://localhost:27017/testDB", {useNewUrlParser: true});
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
const itemsSchema = new mongoose.Schema({
name: String
});
const Item = mongoose.model("Item", itemsSchema);
const item1 = new Item({
name: "test"
});
item1.save();
app.get("/", function(req, res){
console.log("get request received");
Item.deleteMany({name: "test"});
});
app.listen(3000, function(){
console.log("Server started on port 3000");
});
终端输出:
$ node app.js
(node:2868) [MONGODB DRIVER] Warning: useNewUrlParser is a deprecated option: useNewUrlParser has no effect since Node.js Driver version 4.0.0 and will be removed in the next major version
(Use `node --trace-warnings ...` to show where the warning was created)
Server started on port 3000
get request received
运行应用程序并发送GET
个请求后的数据库条目:
testDB> db.items.find()
[
{ _id: ObjectId('658de5a4687d08a6d992f578'), name: 'test', __v: 0 },
{ _id: ObjectId('658de5df82d80828a24ef6ca'), name: 'test', __v: 0 },
{ _id: ObjectId('658de60b1fb7cb4857d913d3'), name: 'test', __v: 0 }
]
Tried:个Delete One()和DeleteMany()命令.
Expected to happen:删除数据库中名为"test"的所有元素.
数据库中存储了Actually resulted:个对象,但没有删除元素.