美文网首页
mongodb中自定义主键

mongodb中自定义主键

作者: 喊我小王吧 | 来源:发表于2019-04-19 17:07 被阅读0次

关于mongodb中设置主键问题

默认主键

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时
接下来的 3 个字节是机器标识码
紧接的两个字节由进程 id 组成 PID
最后三个字节是随机数


在这里插入图片描述

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象

由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

通过注释【@Id】设置主键,如果不设置主键,mongoDB会自动生成主键。

@Document
@Data
public class InvoicesMsg {
    private String customerId;
    private String orderId;
    private String money;
    private String time;
    private String qmz;

    public InvoicesMsg(String customerId, String orderId, String money, String time, String qmz) {
        this.customerId = customerId;
        this.orderId = orderId;
        this.money = money;
        this.time = time;
        this.qmz = qmz;
    }
}

默认生成的数据

{
    "_id": ObjectId("5cb7d0b95de26915c1433160"),
    "customerId": "5c73830e54bbb01d1051ef7d",
    "orderId": "0000000120190418090814000001",
    "money": "550",
    "time": "1555549694",
    "qmz": "a1fbbb8fc0d0f2d93c218efc2cd2de517156e30f",
    "date": "2019-04-18 09:19:53.396",
    "_class": "com.example.btest.demo.bean.InvoicesMsg"
}

自定义主键


    @Document
@Data
public class InvoicesMsg {

    public String id; //主键
    private String customerId;
    private String orderId;
    private String money;
    private String time;
    private String qmz;

    public InvoicesMsg(String customerId, String orderId, String money, String time, String qmz) {
        this.customerId = customerId;
        this.orderId = orderId;
        this.money = money;
        this.time = time;
        this.qmz = qmz;
    }
}

新增一条数据,给id设置值 "1122357" 作为主键

{
    "_id": "1122357",
    "customerId": "00",
    "orderId": "1122357",
    "money": "10",
    "time": "1878678818",
    "qmz": "67d53fdccdf29a0686f3e351fe09d61340ea2c85",
    "date": "2019-04-19 11:25:29.253",
    "_class": "com.example.btest.demo.pojo.InvoicesMsg"
}

可以看到,主键值设为了 1122357 ,但是字段仍然是_id 。

相关文章

  • mongodb中自定义主键

    关于mongodb中设置主键问题 默认主键 ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 b...

  • mongoDB(5) -- _id 解释

    _id 是mongoDB中唯一的主键,MongoDB中存储的文档必须有一个"_id"键, 无论用户是否设置都将自动...

  • 「物联网」从mongodb到influxdb

    之前设计的物联网设备状态汇报存储在mongodb中,mongodb的特点是支持json结构,支持主键,支持增删改查...

  • MongoDB(主键设置)

    "自增变量"型主键的缺陷 主键的作用是作为当前这行数据的唯一标识。 从前,人们用到的数据量比较小,因此采用"自增变...

  • MongoDB 概念解析

    MongoDB数据类型 MongoDB几种我不太理解的数据类型1.ObjectIdObjectId 类似唯一主键,...

  • mongoengine 获取自定义主键出错

    # Issue model 中自定义主键,是为某个 field 添加 primary_key 属性,mongoen...

  • nodejs使用mongodb将string类型id转换为Obj

    一、问题描述 通过NodeJs操作MongoDb数据库,在删除操作中使用主键id做为条件: 有接触过mongodb...

  • Mongodb 的一些细节

    关于mongodb查询出来的数据类型 id类型 mongodb 的id是一个特殊的对象: 主键,一种特殊而且非常重...

  • MongoDB 使用小结(一)

    1.生成自己的主键在项目中,最好不要把"_id"当做业务主键,也不要依赖它作为插入时间排序的依据。MongoDB在...

  • 02-MongoDB-创建文档和删除文档

    创建文档 1.主键 MongoDB的主键和MySQL一样, 也是用于保证每一条数据唯一性的 和MySQL不同的是,...

网友评论

      本文标题:mongodb中自定义主键

      本文链接:https://www.haomeiwen.com/subject/xcjcgqtx.html