从csv导入数据时,如何更改mongodb中自动生成的_id字段?
我正在使用从csv导入数据时,如何更改mongodb中自动生成的_id字段?,mongodb,csv,mongodb-query,database,Mongodb,Csv,Mongodb Query,Database,我正在使用mongoimport从csv文件导入数据。为此,我执行以下命令 mongoimport -d {databaseName} -c {collectionName}--type csv --file {fileName} --headerline 它使用objectId值创建自动生成的\u id字段。并在其上创建索引。 但我希望它不应该在此基础上创建索引。如何在\u id和该csv文件的字段上创建复合索引?引用MongoDB MongoDB在创建集合时为所有集合创建_id索引,该索
mongoimport
从csv
文件导入数据。为此,我执行以下命令
mongoimport -d {databaseName} -c {collectionName}--type csv --file {fileName} --headerline
它使用objectId值创建自动生成的\u id
字段。并在其上创建索引。
但我希望它不应该在此基础上创建索引。如何在\u id
和该csv
文件的字段上创建复合索引?引用MongoDB
MongoDB在创建集合时为所有集合创建_id索引,该索引是_id字段上的唯一升序索引。无法删除_id字段上的索引
但是,您可以创建一个复合索引,其中索引可以包含对\u id
字段的引用
语法是
db.test.ensureIndex({“\u id”:1,“name”:1})
例如,name
是文档中的另一个字段 你为什么要这样做?因为我不希望默认id是索引。你是真的想要生成一个复合的\u id
,还是只是使用一个不同的字段作为主键?如果您的csv文件中有一个更自然的键,您可以将csv标题中的字段名更改为\u id
@Stennie我想用默认的_id和csv文件的一个字段创建复合索引。如果您想这样做,您必须用您最喜欢的语言编写自定义导入脚本。我不知道有哪种语言具有受支持的MongoDB驱动程序,并且没有CSV解析模块。但是,为什么要同时使用CSV文件中的\u id
和字段?CSV中的字段是否不唯一?也许在导入CSV后,您最好在字段上确保一个额外的索引。我们还可以删除集合上自动生成的索引吗?@dasamit7不,您不能