如果可以将密钥存储在objectID中,那么使用keyValuePair在MongoDB中存储数据有什么意义吗?

如果可以将密钥存储在objectID中,那么使用keyValuePair在MongoDB中存储数据有什么意义吗?,mongodb,key-value,objectid,Mongodb,Key Value,Objectid,如果我有一组键值对,并且键是唯一的,那么不使用键作为objectid有什么好处吗 MongoDB以键值对的形式存储数据;键表示为字符串,值可以是各种类型(标量值(如整数)或复合值(如数组)。文档中的键是字段名。一般来说,用户(或程序员)对键使用友好的名称。例如,我会使用键名作为“用户名”或“帐号”。这些键不仅用于标识字段,还用于在查询(所有CRUD操作)中使用它们。好吧,但为什么不用主键创建objectId呢?这肯定会占用更少的空间,并允许您更快地访问数据?每个文档中都必须有\u id字段(或键

如果我有一组键值对,并且键是唯一的,那么不使用键作为objectid有什么好处吗

MongoDB以键值对的形式存储数据;键表示为字符串,值可以是各种类型(标量值(如整数)或复合值(如数组)。文档中的键是字段名。一般来说,用户(或程序员)对键使用友好的名称。例如,我会使用键名作为“用户名”或“帐号”。这些键不仅用于标识字段,还用于在查询(所有CRUD操作)中使用它们。好吧,但为什么不用主键创建objectId呢?这肯定会占用更少的空间,并允许您更快地访问数据?每个文档中都必须有
\u id
字段(或键)。每个文档都有一个默认且不可变的唯一值。如果未提供此字段的值,则此字段的值为
ObjectId
。而且,
\u id
充当MongoDB集合的主键。是的,既然您可以将_id字段指定为您喜欢的任何值,为什么不始终将该键存储在_id中?拥有一个objectID、一个单独的不同键和一个值有什么可能的优势。为什么不把键放在objectID中,把值放在value中呢?
\u id
就是键。它可以在查询中使用,例如,
db.collection.find({u id:“some-vlue”})
,这个值可以是整数、字符串或ObjectId。我不确定我是否遵循了你的摘要——如果可能的话,请发布一个例子。