我有大量的数据记录,每一个都有唯一的ID在我的域。那么我可以在mongodb中的插入文档中禁用(不保存)ObjectID吗?这将占用大量的磁盘空间...
wmomyfyw1#
_id字段是强制性的,您需要为每个文档提供一个唯一的值,但它不必是ObjectID。您也可以使用整数值来节省保存空间,但是您需要确保每个文档的值都是唯一的。
_id
sczxawaw2#
使用唯一的ID从您的域作为_id..如果你不提_id。Mongo自动分配ObjectId。ObjectId的类型为ObjectID。
368yc8dk3#
是的,你可以通过两种方式在mongodb中禁用auto ObjectId(autoIndexId)。1.如果您想禁用_id字段的自动生成,您可以在插入文档时显式地将其设置为您选择的值。举例来说:
db.demoCollection.insertOne({ _id: "myCustomID", name: "John Wick", age: 30 });
2.或者你可以通过在你的模式中定义这个来关闭它。
{ collection: 'youCollection', autoIndexId: false}.
About autoindexid in official doc.
3条答案
按热度按时间wmomyfyw1#
_id
字段是强制性的,您需要为每个文档提供一个唯一的值,但它不必是ObjectID。您也可以使用整数值来节省保存空间,但是您需要确保每个文档的值都是唯一的。sczxawaw2#
使用唯一的ID从您的域作为_id..如果你不提_id。Mongo自动分配ObjectId。ObjectId的类型为ObjectID。
368yc8dk3#
是的,你可以通过两种方式在mongodb中禁用auto ObjectId(autoIndexId)。
1.如果您想禁用_id字段的自动生成,您可以在插入文档时显式地将其设置为您选择的值。举例来说:
2.或者你可以通过在你的模式中定义这个来关闭它。
About autoindexid in official doc.