mongodb - NoSQL/MongoDB:我什么时候需要嵌套对象中的 _id?
问题描述
当 _id 字段引用简单的嵌套对象时,我不明白它的用途,例如,它不用作专用集合中的根实体。
假设我们有一个简单的值对象,例如Money({currency: String, amount: Number })
. 显然,您永远不会将这样的值对象本身存储在专用集合中。它宁愿附加到交易或产品上,它们将有自己的集合。
但是您仍然可以查询高于/低于给定值的特定货币或金额。您可能会以编程方式(不是在数据库级别)将交易的价值设置为与购买的产品相同。
在这种情况下你需要一个 _id 吗?在什么情况下,嵌套对象需要 _id?
解决方案
假设您要询问的 _id 是ObjectId,则此类字段的唯一目的是唯一标识一个对象。集合中的文档或数组中的子文档。
从你的钱箱的描述来看,你的价值对象似乎没有必要有这样的 _id 字段。一个有效的用例可能是一组非唯一/不可识别的子文档,例如日志条目、加密数据等。
ODM 可能会默认添加此类字段,以便以统一的方式处理子文档,而不管应用程序需要。
推荐阅读
- react-native - navigation.navigate 不适用于 useEffect() 之一;
- javascript - 如何使用javascript从表中获取第二个td值
- python - 如何在使用 oauth1 和 python 调用 confluence api 时发布附件?
- javascript - Angular 在所需组件内创建动态组件
- java - 尝试在 Netbeans 中执行表单类的问题
- powershell - PowerShell 拉取所有没有成员的空 DL
- android - 测试我使用 Ruby 和 Appium 的断言是否正确
- r - 当 R 中的结果为负时显示 2 位数字和错误消息
- python - tf.Variable assign 方法打破了 tf.GradientTape
- webrtc - Ice stun 请求包中的提名标志在哪里?