关于猫鼬mongoObjectId的一些问题
1)可以通过命名ObjectId字段不作为_id?以及如何做到这一点?当我在我的代码:
MySchema = new mongoose.Schema({
id : mongoose.Schema.ObjectId
});
它改变不了什么。
2)如果我有一个名为object tId的字段_id是否可以从请求中返回该字段的另一个名称(例如只是“id”-在Web响应中发送它);
3)问题只是为了理解:为什么ObjectId_id字段可以通过id属性访问而不是_id?
谢了亚历克斯
_id元素是mongoDB架构的一部分,它保证集合中的每个文档都可以唯一标识。如果您使用分片来允许跨不同机器的唯一标识符,这一点尤其重要。因此这是一种设计选择,因此没有办法驾驭它:)
_id的默认值生成如下:
但是你可以使用任何你想要的值,只要是唯一的。
如果你更容易考虑必须存在的东西的_id,但你真的不在乎:)只需让系统自动生成它并使用你自己的标识符。
因此,如果您仍然想创建自己的“id”,请执行如下操作:
db.mySchema.ensureIndex({"id": 1}, {"unique" : true})
但是要确保这是真正独特的,并且不会与你使用的API冲突。
2)在应用程序端重命名它,就在将其作为Web响应发送之前。
3)我认为这是因为你使用的API。也许作者发现返回id而不是_id更合乎逻辑?老实说,从未尝试过猫鼬:)