我从API获取数据,然后解析导致数组的JSON对象。 [{id:“ 24qera”,名称:“ john”},{id:“ rq3raa34”,名称:“ jess”}}。我要存储20多个文档。
我将名为data的数组和db变量连接至数据库,并将集合连接至数据库。我使用collection.insertMany( json );
行,现在有两个ID,分别是我的objectID和我的数组ID。
var db = dbService.db("GitLab-db");
var collection = db.collection("User");
collection.insertMany(fdata);```
expectation: {
_id:ObjectId("24qera"),
name: "john"
},
{
_id:ObjectId("rq3raa34"),
name: "jess"
}
output: {
_id:ObjectId("jfakej23j4q3wa4")
id: "24qera",
name: "john"
},
{
_id:ObjectId("akjk34qq453")
id: "rq3raa34",
name: "jess"
}
答案 0 :(得分:0)
我想您真的无法操纵mongodb在将数据存储在数组中时自动生成的_id。...您可以忽略_id并使用要存储的id
答案 1 :(得分:0)
如果未提供,MongoDB会自动插入一个_id
值。这是硬编码的行为,以确保始终有 个唯一的主键可用于检索特定文档。您无法更改此行为。
但是,您可以简单地忽略_id
字段,甚至可以通过添加投影选项将其完全从返回结果中删除。例如,在MongoDB Shell中,您可以运行以下命令:
db.User.find({name: "jess"}, {_id: 0})