我有一个简单的 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_collection 的 test_db,它只有一个简单的值 'x':1,但即使那样也不起作用。所以我知道必须进行其他操作。
工具的版本很重要
正在使用的 mongodump 版本是 3.0.3。另一个使用 mongorestore 的虚拟机上的版本是 2.4.x。这是错误的原因。一旦我在我的虚拟机 ( see official guide ) 上更新了 mongodb-org-tools,我就能够按预期启动和运行。
希望这对将来的人有所帮助。检查你的版本!
mongodump --version
mongorestore --version
关于json - MongoDB 解析失败 : Bad characters in value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315271/