将mongodb数据库导入mongolab

将mongodb数据库导入mongolab,mongodb,mlab,Mongodb,Mlab,我已经从本地数据库导出mongoDB,它的格式如下,另存为CSV文件 _id,accomodation,state,user ObjectId(565dae266dbda6964f061d99),No,California,ObjectId(5651fb48b0dfa73c134df161) 然后,我尝试使用以下命令运行mongoimport mongoimport -h hostname -d dbname -c collectionname -u username -p passwor

我已经从本地数据库导出mongoDB,它的格式如下,另存为CSV文件

_id,accomodation,state,user
ObjectId(565dae266dbda6964f061d99),No,California,ObjectId(5651fb48b0dfa73c134df161)
然后,我尝试使用以下命令运行mongoimport

 mongoimport -h hostname -d dbname -c collectionname -u username
 -p password --file filename.csv --type csv --headerline
导入成功,但在我阅读时以严格模式存储数据库,以便存储

ObjectId(565dae266dbda6964f061d99)  in this format 
"_id": {
        "$oid": "565dae266dbda6964f061d99"
    }
但我导入的数据只存储为ObjectId(565dae266dbda6964f061d99)…我想知道如何在安全模式下导入该数据,并将其保存在“$oid”中的所有ObjectId数据存储中:“565dae266dbda6964f061d99”格式

如果你有任何问题,请告诉我


谢谢。

正如您在问题中正确指出的,MongoLab使用的对象ID表示如下:

{ "$oid": "<id>" }
{“$oid”:“}

无法在托管服务上更改此设置。

我不确定,但可以在本地查询此数据{“\u id”:“ObjectId(565dae266dbda6964f061d9a)”,“acomodation”:“no”,“user”:“ObjectId(5651fb48b0dfa73c134df161)”}但是一旦我们在mongolab上使用相同的方法,一旦我用$oid更改ObjectId,查询就不起作用了,然后它就开始工作了……您是在使用控制台还是ORM?啊,好吧,在控制台中,您必须使用(正如您所看到的)$oid-大多数ORM会自动为您处理此问题,因为在我的集合中,我有一个字段“user”:“ObjectId(5651fb48b0dfa73c134df161)”我只是更改了userID,现在数据也与ObjectId一起通过了……我不知道为什么用户密钥名会冲突……无论如何,谢谢:)@sonukumar没问题,很高兴我能帮助您快速澄清一下:MongoLab不使用严格的JSON存储数据,所有MongoDB数据仍然存储为BSON。但是,web UI中的文档编辑器是JSON编辑器,因此必须使用严格的MongoDB扩展JSON以JSON格式查看和编辑ObjectId。您会注意到,如果您通过mongo管理shell连接到MongoLab数据库并查询数据,这些id值将显示为ObjectId(因为shell是JavaScript解释器,不强制执行严格的JSON)。