簡體   English   中英

插入許多在 mongo DB 中不起作用的原因是什么?

[英]insert many don’t working in mongo DB why?

我正在嘗試使用貓鼬在 mongoDB 中插入許多內容。它只保存one collection只是為什么這是我的代碼https://codesandbox.io/s/gallant-solomon-o91wp

我就這樣存

app.get("/saveData", async () => {
  try {
    const data = [
      {
        empid: "test123",
        date: "19-Jul-2019"
      },
      {
        empid: "test13",
        date: "18-Jul-2019"
      },

      {
        empid: "test13",
        date: "11-Jul-2019"
      }
    ];
    console.log("before save");
    let saveBlog = await BlogPostModel.collection.insertMany(data, {
      checkKeys: false
    }); //when fail its goes to catch
    console.log(saveBlog); //when success it print.
    console.log("saveBlog save");
  } catch (error) {
    console.log(error);
  }
});

嘗試獲取這樣的數據

app.get("/filter", async (req, res) => {
  try {
    let filterBlog = await BlogPostModel.find({});
    //when fail its goes to catch
    console.log(filterBlog); //when success it print.
    res.send(filterBlog);
  } catch (error) {
    console.log(error);
  }
});

只顯示一份文件

在此處輸入圖像描述

因此,正如我所懷疑的,您創建的集合中還有一個索引,即blogposts 索引是id [key id name id_1 ]。 這是你的整個項目,我已經添加了故障。

演示

在這里我還添加了一個 api /indexes ,這將檢索集合的所有索引。 默認情況下_id應該在那里,之后添加其他索引。 所以在這里你可以看到id ,它必須是唯一的。

我對您的代碼做了一些更改。

路由/saveData現在能夠插入記錄。 它有一個名為id的字段,它是唯一的。

但是,現在位於/saveData_old的舊路由,這會給您帶來錯誤,因為沒有表示此索引鍵 [ id ] 的鍵。 [同樣在插入一個后,它的id為 null 和 rest 將失敗,只會導致重復]

現在您可以使用具有唯一值的id鍵,或者如果您不需要,您也可以刪除索引。 您可以在此處找到有關如何刪除索引的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM