mongodb数据中_id疑问

mongodb在创建数据时每一条都会自动创建_id,但是_id为什么可以互相进行比较,像这样:

db.users({'_id':{$lt:id}})
//id为某一条数据_id

这些_id打印出来像这样:59a8ceae00953903081900ee,59a8ceae00953903081900eb,在看一些mongodb学习资料时,通常是这样使用比较操作:

db.users({'age':{$lt:20}})

都有具体的值进行筛选比较,但是_id之间也可以比较,另外_id可不可以传给前台用,有什么不妥?

阅读 2.2k
2 个回答
  1. 这个_id是这条数据的索引,是由 TimeStamp(时间撮) Machine(主机的唯一标识符) pid(确保同一秒不同) increment(自增计数器) 依次排列组成 最后转成十六进制的.所以完全可以用来进行大小比较

  2. 可以传给前端,用来做资源的唯一标识符(例如某一个user)

如果你看过mongodb官方文档中对于_id这个属性生成的算法就明白了: https://docs.mongodb.com/manu...

这个_id就是大致按照时间顺序生成的,甚至官方文档都有类似的用法,你可以好好看看官方文档。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题