mongodb数据库教程-MongoDB自动递增序列

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

MongoDB中没有类似SQL数据库中那么拿来即用的自动增量功能。 默认情况下,它使用_id字段的12字节ObjectId作为唯一标识文档的主键。 但是,可能存在我们可能希望_id字段拥有除ObjectId之外的一些自动递增值的情况。

由于MongoDB不提供默认自动增长功能,所以我们通过使用MongoDB文档中所建议的计数器集合以编程的方式来实现此功能。

使用计数器集合

考虑以下product文档。 我们希望_id字段是从:1,2,3,4n开始的自动递增整数序列。

{   "_id":1,   "product_name": "Huawei P9",   "category": "mobiles" } 

为此,创建一个计数器集合,它将跟踪所有序列字段的最后一个序列值。

>db.createCollection("counters") 

现在,将把以下文档插入计数器集合中,以productid作为键 –

{   "_id":"productid",   "sequence_value": 0 } 

字段sequence_value跟踪序列的最后一个值。使用以下代码将此序列文档插入计数器集合中 –

>db.counters.insert({_id:"productid",sequence_value:0}) 

使用Javascript函数

现在将在创建一个新文档时使用函数getNextSequenceValue,并将返回的序列值分配为文档的_id字段的值。

使用以下代码插入两个示例文档 –

>db.products.insert({    "_id":getNextSequenceValue("productid"),    "product_name":"HuaWei P9",    "category":"mobiles" })  >db.products.insert({    "_id":getNextSequenceValue("productid"),    "product_name":"OPPO X6s",    "category":"mobiles" }) 

如上所示,使用getNextSequenceValue函数来设置_id字段的值。

>db.products.find() 

上述查询返回了具有自动递增的_id字段的值,如下文档所示 –

{ "_id" : 1, "product_name" : "HuaWei P9", "category" : "mobiles"} { "_id" : 2, "product_name" : "OPPO X6s", "category" : "mobiles" } 

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mongodb数据库教程/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/03/27/mongodb数据库教程-mongodb自动递增序列/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注