MongoDB'错误:在Node.js上检测不到ascii字符

我试图parsing一个非常大的数据块到一个新的MongoDB数据库,当我运行这个工作时,我不断收到错误,当我做db.myCollection.find()
错误是error: non ascii character detected

我正在使用Node.js和Mongoose来填充数据库。 我所看到的唯一可能导致问题的angular色是' ,” ,但是我已经完成了所有这些angular色。 我试图逃脱他们( \ ),我试图把他们完全删除,似乎没有任何工作。

我最大的问题是,当我保存对象时,我没有遇到任何错误,当我尝试查看集合时,我只是得到这个消息。

有没有消息MongoDBinput的信息?

如果是string数据,那么在插入之前可能要确保它被编码为UTF8。 大多数司机应该检查这个,但是在Mongoose司机可能会被忽视。 MongoDB中的所有string都存储为UTF8,由BSON规范定义。

刚刚有同样的问题。 在Ubuntu (EC2)上的MongoDB 版本:1.8.2 + Mongoose 3.3.1NodeJS v0.8.14

> db.tweets.find();

错误:未检测到ascii字符

共识是升级到最新版本的MongoDB( 2.2 )将解决这个问题。

通过发出命令来检查我运行的是哪个版本的MongoDB:

$ mongod –version

db版本v1.8.2 ,pdfile版本4.5 – 星期三10月24日15:43:13 git版本:nogitversion

确认 mongo目前是否在运行:

$ ps -deaf | grep mongod

mongodb 15408 1 0 Jun06? 13:50:00 / usr / bin / mongod –config /etc/mongodb.conf

closuresMongoDB

$ ./mongo

>使用pipe理员

> db.shutdownServer()

服务器应该下来…

然后按照以下说明进行升级: 如何在Ubuntu上安装MongoDB

添加10代(MongoDB的创造者)公钥到apt-get,所以你相信他们的包:

$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv 7F0CEB10

$ echo“deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen”>> /etc/apt/sources.list.d/10gen.list

更新你的软件包:

$ sudo apt-get update

安装10gen的MongoDB Debian / Ubuntu软件包:

$ sudo apt-get install mongodb-10gen

以下软件包将被删除mongodb

以下软件包将被安装: mongodb-10gen

如果您遇到错误 ,请尝试:

$ apt-get autoremove

确认mongodb用户/组有权写入数据目录:

$ sudo chown -R mongodb:mongodb / var / lib / mongodb /。

使用以下命令重新启动MongoDB:

$ mongod –fork –dbpath / var / lib / mongodb / –smallfiles –logpath /var/log/mongodb.log –logappend

一旦你有新版本的MongoDB,“非ASCII”字符问题应该消失。 🙂

当我不小心做到这一点时,我知道了

BasicDBObject bdb; bdb.put(“myfield”,new ObjectId(String.valueOf(objectId)));

然后保存bdb到mongo。