- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
将 id 作为 ObjectId 存储到相关文档中与将其存储为字符串文字相比有什么好处吗?
使用 ObjectID:
{
"_id": ObjectId("522bb79455449d881b004d27"),
"username": "admin",
"folder": ObjectId("522bb79455449d881b004d23")
}
相对于字符串:
{
"_id": ObjectId("522bb79455449d881b004d27"),
"username": "admin",
"folder": "522bb79455449d881b004d23"
}
对于我将数据发送回客户端的 API...使用字符串意味着我不必“清理”数据...因为我们必须进行第二次查询才能获取文件夹无论如何都要记录...是否值得使用 ObjectId? (如果是,为什么?)
谢谢
最佳答案
最大的原因是 ObjectID 是 12 个字节,而等效的字符串是 24 个字节。在足够大的集合中,每个 ID 节省的 12 个字节真的加起来了!这些 ID 还意味着在读取或写入文档时通过网络传输的字节数也更少。
此外,一些 ODM 期望 ObjectID 用于外部文档引用,并且可能会被 ID 的字符串版本混淆。不过,我对 PHP ODM 还不够熟悉,无法说明这是否会对您产生特别的影响。
不过,关于 API 的东西,无论如何,您可能应该在将数据发送到客户端之前对其进行规范化,因为由于 Mongo 不强制执行模式,因此您可以在给定字段中包含任何类型的数据,因此,您可能有一些文档具有字符串 ID,而其他文档具有 BSON ID,并且您的 API 会很乐意将它们都发送到客户端,但其中一个可能会导致损坏。在这种特殊情况下,您应该在文档中使用 BSON ObjectID,然后将它们转换为 API 输出中的字符串。
关于php - MongoDb:使用 ObjectID 与包含 Id 的字符串的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680462/
如果函数定义顺序不对,Jslint 将指出错误。 显然 jslint 是严格的,但我想知道将函数按顺序排列是否有任何好处。 我的意思是在调用它们之前定义它们。 最佳答案 函数定义(和 var 语句)被
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我注意到Flask tutorial涉及到点的使用。看起来它只是用于在本地创建一个轮子,这将使服务器上的设置变得更容易,但作为一个网络开发新手,我很好奇:是否有人真的会一路将他们的网站上传到像 PyP
我一直在阅读有关 jquery live event 的内容,但仍然有点困惑?使用它有什么好处? http://docs.jquery.com/Events/live 我知道它与绑定(bind)类似,
这是我的故事:我已将我的应用迁移到 AndroidX,因为我需要从网上找到的库中获取一些新功能。 问题:我目前遇到了一些问题,因为我现在需要为 Cordova 开发一个插件来实现该应用程序的一部分。
在使用 RAD 或一般不使用单元测试时使用依赖注入(inject)是否有任何好处? 最佳答案 是的,有以下几个好处: 减少依赖 减少依赖携带 更多可重用代码 更多可测试代码 更具可读性的代码 更多引用
我目前正在构建一个通过 MSI Windows Installer 分发的产品。我们的客户正在使用不同的形式(例如我们在他们自己的 MSI 中)集成该产品,使用 Bootstrap /链接器(如 Wi
有人声称 Scala 的类型系统是图灵完备的。我的问题是: 这有正式的证据吗? 简单的计算在 Scala 类型系统中会是什么样子? 这对 Scala 这种语言有什么好处吗?与没有图灵完备类型系统的语言
我开始尝试使用 React,我注意到我正在制作的简单应用程序全部使用 JS。我的 html 页面只是一个空的 body 标签! 所以我有几个问题,因为我是这个框架的新手。 我的整个应用程序应该基本上都
我们有一个相当大的基于 Windows 的 1.1 .NET 应用程序,我们正在考虑升级到 2.0。我们考虑更新的主要原因是我们可以利用 Visual Studio 2008 进行项目的持续开发,以及
我有一个页面,其中内置了基于 ajax 的分页。分页用于页面中的“评论”功能。根据 Google 的网站管理员博客,具有 rel="next"和 rel="prev"值有利于 SEO。 我在头部添加了
我是一名优秀的程序员,十分优秀!