最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

为什么许多人不能在mongo DB中工作?

运维笔记admin11浏览0评论

为什么许多人不能在mongo DB中工作?

为什么许多人不能在mongo DB中工作?

我正在尝试使用mongoose的。在mongoDB中插入很多。它仅保存one collection,仅为什么这是我的代码

我这样保存

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 [键id名称id_1]。这是您的整个项目,我补充说。

Demo

并且在这里我还添加了一个api /indexes,它检索集合的所有索引。默认情况下,/indexes应该存在,之后添加其他索引。所以在这里您可以看到_id,它必须是唯一的。

我对您的代码进行了几处更改。

路径id现在可以插入记录。并且它的字段/saveData是唯一的。

但是,现在位于/saveData的旧路由,由于没有代表此索引键[id]的键,这将给您带来错误。 [同样在插入一个后,它的/saveData_old为空,其余的将失败,仅导致重复]

现在您可以将id键用于唯一值,或者如果不需要,也可以删除索引。您可以找到有关如何删除索引的答案id

发布评论

评论列表(0)

  1. 暂无评论