为什么许多人不能在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
。