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.1 ( NodeJS 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。