我是Sails和Mongo Db的新手。目前我正在尝试使用Sails实现一个CRUD函数,我希望在Mongo db中保存用户详细信息。在模型中我有以下属性
"id":{
type:'Integer',
min:100,
autoincrement:true
},
attributes: {
name:{
type:'String',
required:true,
unique:true
},
email_id:{
type:'EMAIL',
required:false,
unique:false
},
age:{
type:'Integer',
required:false,
unique:false
}
}
我想确保使用从100开始的值覆盖_id,并使用每个新条目自动递增。我正在使用水线模型当我在DHC中调用Api时,我得到以下输出
"name": "abc"
"age": 30
"email_id": "abc@gmail.com"
"id": "5587bb76ce83508409db1e57"
这里给出的Id是对象Id。可以告诉我如何用100开始用100重写对象id,并且每个新值自动递增。
答案 0 :(得分:3)
注意:Mongo ID应为unique as possible,以便扩展良好。默认ObjectId由时间戳,计算机ID,进程ID和随机递增值组成。只留下后者会使它易于碰撞。
然而,有时你非常想要美化永无止境的ObjectID值(即在encoding之后显示在URL中)。然后,您应该考虑使用适当的原子增量策略。
Overriding _id示例:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
修改强>
我找到了issue,其中sails-mongo的老板说:
MongoDb没有自动递增属性,因为它没有 支持它而不在a上做某种手动序列增量 单独的收集或文件。我们目前不会这样做 适配器,但它可以在将来添加或如果有人想要 提交公关。我们为sails-disk和sails-redis做类似的事情 获得对autoIncremeting字段的支持。
他提到了我在这个答案中添加的第一个技巧: 使用计数器集合。在同一期中, lewins 显示了一种解决方法。