从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不,您不能