使用自动增量id初始化MongoDB的脚本



我想用脚本初始化mongoDB,因为我有一些集合,需要在开头有值,所以我按照说明进行了操作:http://michelebusta.com/the-little-things-5-initialize-a-local-mongo-db/

我创建了一个(.js)文件,我加载它,它就工作了,

db.serviceSpeedList.insert({
_id: 0,
name:"DHL", service:"DHL Ground"});
db.serviceSpeedList.insert({
_id: 1,
name:"DHL", service:"DHL Second Day Service"});
db.serviceSpeedList.insert({
_id: 2,
name:"DHL", service:"DHL Express"});
db.serviceSpeedList.insert({
_id: 3,
name:"DHL", service:"DHL International Express"});

问题是我有这样的ID:"_ID":ObjectId("572b8601e6352994d76bb13e"),我想要一个自动递增Id(_Id:1),你能帮我吗?

{
"_id" : ObjectId("572b8601e6352994d76bb139"),
"name" : "DHL",
"service" : "DHL Ground"
}
{
"_id" : ObjectId("572b8601e6352994d76bb13a"),
"name" : "DHL",
"service" : "DHL Second Day Service"
}

我使用

var i= 0; 
db.serviceSpeedList.insert({ "_id" : i++, name:"DHL", service:"DHL Ground"}); 
WriteResult({ "nInserted" : 1 }) 
db.serviceSpeedList.insert({"_id" : i++, name:"DHL", service:"DHL Second Day Service"}); 
WriteResult({ "nInserted" : 1 }) 

当我在shell中单独使用它时,它是有效的,但当我把它放在脚本中并使用load("D:\initMongo.js")时;它不起作用:(请帮我

您必须在mongodb数据库中执行一个自动递增序列。可以找到完整的示例:https://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

您可以将_id设置为任何其他属性,如果您有一个js文件,请考虑使用var i = 0;并在每个insert语句中递增。

db.serviceSpeedList.insert({ "_id" : i++, name:"DHL", service:"DHL Ground"});
db.serviceSpeedList.insert({"_id" : i++, name:"DHL", service:"DHL Second Day Service"});

只需遵循流程

> var i = 0;
> db.serviceSpeedList.insert({ "_id" : i++, name:"DHL", service:"DHL Ground"});
WriteResult({ "nInserted" : 1 })
> db.serviceSpeedList.findOne()
{ "_id" : 0, "name" : "DHL", "service" : "DHL Ground" }
> db.serviceSpeedList.insert({"_id" : i++, name:"DHL", service:"DHL Second Day S
ervice"});
WriteResult({ "nInserted" : 1 })
> db.serviceSpeedList.find()
{ "_id" : 0, "name" : "DHL", "service" : "DHL Ground" }
{ "_id" : 1, "name" : "DHL", "service" : "DHL Second Day Service" }
>

最新更新