Art*_*ero 2 database-design permalinks identifier mongodb
我正在开发一个创建永久链接的应用程序.我不确定如何在MondoDB中保存文档.两种策略:
ObjectId自动生成
MongoDB自动生成_id.我需要在该permalink字段上创建索引,因为我通过固定链接获取信息.我也可以使用该getTimestamp()方法访问ObjectId的创建时间,因此datetime字段似乎是多余的,但是如果我删除这个字段,我需要两次调用MongoDB来获取信息而另一次调用时间戳.
{
"_id": ObjectId("5210a64f846cb004b5000001"),
"permalink": "ca8W7mc0ZUx43bxTuSGN",
"data": "a lot of stuff",
"datetime": ISODate("2013-08-18T11:47:43.460+-100")
}
Run Code Online (Sandbox Code Playgroud)生成_id
我_id用永久链接生成了.
{
"_id": "ca8W7mc0ZUx43bxTuSGN",
"data": "a lot of stuff",
"datetime": ISODate("2013-08-18T11:47:43.460+-100")
}
Run Code Online (Sandbox Code Playgroud)我没有看到使用ObjectIds的任何好处.我错过了什么吗?
ObjectIds适用于集合中每个文档都没有唯一键的情况.它们是独一无二的,因此您不必担心冲突,它们在大型部署中合理地分页,而不必过于担心(它们有利有弊,请在此处阅读更多内容).
的ObjectId也包含在所述客户端的时间戳ObjectId产生(除非DB服务器被配置为生成所有密钥).有了这些,正如您所注意到的,您可以使用时间戳执行某些日期操作.但是,如果您计划使用聚合框架,则会发现您无法ObjectId在当前(问题)的任何日期操作中使用.如果你想使用AF,你需要一个包含日期的第二个字段,不幸的是,它会将其与ObjectId内部值进行双倍存储.
如果您可以确信_id您生成的是唯一的,那么ObjectId在您的数据结构中使用a的理由就不多了.
| 归档时间: |
|
| 查看次数: |
5872 次 |
| 最近记录: |