WHI*_*LOR 5 mongoose mongodb node.js
关于mongoose中mongo ObjectId的一些问题
1) 可以不是命名为 _id 的 ObjectId 字段吗?以及如何做到这一点?当我在我的代码中做:
MySchema = new mongoose.Schema({
id : mongoose.Schema.ObjectId
});
Run Code Online (Sandbox Code Playgroud)
它什么都不改变。
2)如果我有一个名为 _id 的 objectId 字段,是否可以从请求返回此字段的另一个名称(例如,只是“id” - 在 Web 响应中发送它);
3) 问题只是为了理解:为什么 ObjectId _id 字段可以通过“id”属性而不是“_id”访问?
谢谢,亚历克斯
小智 4
“_id”元素是 mongodb 架构的一部分,它保证集合中的每个文档都可以被唯一标识。如果您使用分片来允许跨不同机器的唯一标识符,这一点尤其重要。因此,这是一个设计选择,所以没有办法摆脱它:)
_id 的默认值生成如下:
但你可以使用任何你想要的值,只要它是唯一的。
如果你更容易考虑必须存在的东西的 _id ,但你真的不关心:)只需让系统自动生成它并使用你自己的标识符即可。
因此,如果您仍然想创建自己的“id”,请执行类似的操作:
db.mySchema.ensureIndex({"id": 1}, {"unique" : true})
Run Code Online (Sandbox Code Playgroud)
但要确保它确实是唯一的,并且不会与您使用的 API 冲突。
2) 在将其作为 Web 响应发送之前,在应用程序端对其进行重命名。
3)我认为这是因为你使用的API。也许作者发现返回 id 而不是 _id 更符合逻辑?老实说从来没有尝试过猫鼬:)
归档时间: |
|
查看次数: |
7096 次 |
最近记录: |