【发布时间】:2021-07-27 15:42:17
【问题描述】:
我在 NodeJS 项目的 MongoDB 中使用“insertedCount”时遇到问题。在“insertOne()”之后,分配的 const 不允许我读取返回“未定义”的 insertCount 值。我附上我的 app.js 代码:
const { MongoClient } = require("mongodb");
const express = require("express");
const app = express();
const dbURI = "mongodb+srv://xxxx:xxxx@xxxx.xxxx.mongodb.net/xxxx?retryWrites=true&w=majority";
const mongoClient = new MongoClient(dbURI, { useUnifiedTopology: true });
let blogDB, articoliCollection;
//Create
app.get("/nuovo-articolo", async (req, res) => {
const articolo = {
titolo: "Titolo articolo 1",
testo: "Testo articolo 1",
autore: "Andrea",
tag: ["node.js", "javascript", "mongodb"]
};
const ris = await articoliCollection.insertOne(articolo);
if(ris.insertedCount === 1){
res.send("Nuovo articolo inserito correttamente!");
}
});
//Read
app.get("/articolo", (req, res) => {});
//Update
app.get("/modifica-articolo", (req, res) => {});
//Delete
app.get("/cancella-articolo", (req, res) => {});
async function run(){
await mongoClient.connect();
console.log("Siamo connessi a MongoDB Atlas");
app.listen(3000, () => console.log("Server in ascolto sulla porta 3000..."));
blogDB = mongoClient.db("blog");
articoliCollection = blogDB.collection("articoli");
}
run().catch(err => console.log("Errore connessione: " + err));
使用 insertMany 传递 2 个文档,它进入 if(更改 2 中的 equal 值),但在 const ris 中有一个简单的 insertOne,我没有 insertCount。 在数据库中,文档存储没有问题。如何将insertCount 与insertOne 一起使用? console.log(ris.insertedCount) 不断给我“未定义”。
使用我编写的代码,我无法访问 if 中的 res.send。
Tnx,安德烈。
【问题讨论】:
-
insertOne返回一个确认和新插入文档的_id值。请注意,insertOne只能插入一个文档(否则会失败)。 -
Tnx 的答案。问题是我不能将“insertedCount”与“insertOne”一起使用。有什么办法吗?
-
您可以使用
insertmany并在其中插入一个文档。然后你会得到insertedCount。 -
我在 udemy 上在线学习了一步一步的课程,问题开始是因为老师使用了一对 insertOne-insertedCount。我不知道为什么它对我不起作用
-
您的代码按原样工作(我唯一更改的是我自己的
dbURI)。我看到消息“Nuovo articolo inserito correttamente!”在浏览器中,文档被插入到“blog”数据库的“articoli”集合中。
标签: javascript node.js mongodb express