MongoDB FailedToParse:值中的错误字符

MongoDB FailedToParse: Bad characters in value

我有一个简单的 mongodb 数据库。我正在使用 mongodump 进行转储。

转储命令

mongodump --db user_profiles --out /data/dumps/user-profiles

这里是 user_profiles 数据库的内容。它有一个集合 (user_data),包含以下内容:

{ "_id" : ObjectId("555a882a722f2a009fc136e4"), "username" : "thor", "passwd" : "*1D28C7B35C0CD618178988146861D37C97883D37", "email" : "thor@avengers.com", "phone" : "4023331000" }
{ "_id" : ObjectId("555a882a722f2a009fc136e5"), "username" : "ironman", "passwd" : "*626AC8265C7D53693CB7478376CE1B4825DFF286", "email" : "tony@avengers.com", "phone" : "4023331001" }
{ "_id" : ObjectId("555a882a722f2a009fc136e6"), "username" : "hulk", "passwd" : "*CB375EA58EE918755D4EC717738DCA3494A3E668", "email" : "hulk@avengers.com", "phone" : "4023331002" }
{ "_id" : ObjectId("555a882a722f2a009fc136e7"), "username" : "captain_america", "passwd" : "*B43FA5F9280F393E7A8C57D20648E8E4DFE99BA0", "email" : "steve@avengers.com", "phone" : "4023331003" }
{ "_id" : ObjectId("555a882a722f2a009fc136e8"), "username" : "daredevil", "passwd" : "*B91567A0A3D304343624C30B306A4B893F4E4996", "email" : "daredevil@avengers.com", "phone" : "4023331004" }

将转储复制到 nfs 并尝试使用 mongorestore 将转储加载到测试服务器后

mongorestore --host db-test --port 27017 /remote/dumps/user-profiles

我收到以下错误:

Mon May 18 20:19:23.918         going into namespace [user_profiles.user_data]
assertion: 16619 code FailedToParse: FailedToParse: Bad characters in value: offset:30

如何解决此 FailedToParse 错误

为了做进一步的测试,我创建了一个 test_db 和一个只有一个简单值 'x':1 的 test_collection,但即使这样也不起作用。所以我知道必须进行其他操作。

工具的版本很重要

正在使用的 mongodump 版本是 3.0.3。另一个使用 mongorestore 的虚拟机上的版本是 2.4.x。这是错误的原因。在我的虚拟机 (see official guide) 上更新了 mongodb-org-tools 后,我就能够按预期起床并 运行。

希望这对以后的人有所帮助。检查您的版本!

mongodump --version
mongorestore --version