【发布时间】:2021-06-13 09:52:34
【问题描述】:
我想在我的 mongodb 集合中有一个额外的 ID 字段。 objectId 非常适合获取唯一 ID,但我需要较短的 ID 来进行用户管理。这些 ID 应类似于 10001、10002 等。是否可以通过自动增量获得这些?
【问题讨论】:
我想在我的 mongodb 集合中有一个额外的 ID 字段。 objectId 非常适合获取唯一 ID,但我需要较短的 ID 来进行用户管理。这些 ID 应类似于 10001、10002 等。是否可以通过自动增量获得这些?
【问题讨论】:
您可以通过创建自己的 javascript 函数并创建一个新集合来跟踪下一个序列号。有不同的教程可用于实现。一个可以帮助您获取最后一个序列并递增它的函数:
//create a new collection in Mongo Shell
db.createCollection("collectionName");
db.collectionName.insert({_id:"productid",sequence_value:0})
function geSequenceValue(sequenceName){
var sequenceDocument = db.CollectionName.findAndModify({
query:{_id: sequenceName },
update: {$inc:{sequence_value:1}},
new:true
});
return sequenceDocument.sequence_value;
}
//MongodB shell command
>db.collectionName.insert({
"_id":getNextSequenceValue("productid"),
"product_name":"IPhone",
"category":"Mobile"
})
作为参考,您可以关注检查this。
【讨论】: