MongoDB';错误:检测到非ascii字符';关于Node.js
我正试图将一大块数据解析到一个新的MongoDB数据库中,当我运行作业时,当我执行MongoDB';错误:检测到非ascii字符';关于Node.js,mongodb,node.js,mongoose,Mongodb,Node.js,Mongoose,我正试图将一大块数据解析到一个新的MongoDB数据库中,当我运行作业时,当我执行db.myCollection.find() 错误为错误:检测到非ascii字符 我使用Node.js和Mongoose来填充数据库。我所看到的唯一可能导致问题的字符是”、、和-,但我对所有这些字符都进行了.replace。我试着逃离它们(\),我试着完全移除它们,但似乎没有任何效果 我最大的问题是,我在保存对象时没有收到任何错误,我只是在尝试查看集合时收到该消息 是否有关于清理MongoDB输入的任何信息?如果是
db.myCollection.find()
错误为
错误:检测到非ascii字符
我使用Node.js和Mongoose来填充数据库。我所看到的唯一可能导致问题的字符是”
、、
和-
,但我对所有这些字符都进行了.replace。我试着逃离它们(\
),我试着完全移除它们,但似乎没有任何效果
我最大的问题是,我在保存对象时没有收到任何错误,我只是在尝试查看集合时收到该消息
是否有关于清理MongoDB输入的任何信息?如果是字符串数据,则在插入之前可能会确保其编码为UTF8。大多数司机都应该检查这一点,但猫鼬司机可能忽略了这一点。MongoDB中的所有字符串都存储为UTF8,这是BSON规范定义的。我是在无意中这样做时得到的 基本目标bdb; put(“myfield”,新的ObjectId(String.valueOf(ObjectId))
然后将bdb保存到mongo。也有同样的问题。MongoDB版本:1.8.2+Mongoose3.3.1(NodeJSv0.8.14)在Ubuntu上(EC2) >db.tweets.find() 错误:检测到非ascii字符 共识是升级到最新版本的MongoDB(2.2)将解决这个问题 通过发出以下命令检查MongoDB I运行的版本: $mongod--版本 db版本v1.8.2,pdfile版本4.5- 10月24日星期三15:43:13 git版本:nogitversion 确认mongo当前是否正在运行: $ps-聋人| grepmongod mongodb 154082006年6月10日?13:50:00/usr/bin/mongod--config/etc/mongodb.conf 到 美元/蒙戈 >使用管理员 >db.shutdownServer() 服务器应该已关闭 然后按照以下说明进行升级: 将10代(MongoDB创建者)公钥添加到apt get,以便您信任他们的软件包: $sudo apt key adv--keyserver keyserver.ubuntu.com--recv 7F0CEB10 $echo“deb dist 10gen”>>/etc/apt/sources.list.d/10gen.list 更新您的软件包: $sudo apt获取更新 安装10gen的MongoDB Debian/Ubuntu软件包: $sudo apt获取安装mongodb-10gen 以下程序包将被删除: mongodb 将安装以下新的软件包: mongodb-10gen 如果出现错误,请尝试: $apt获取自动删除 确认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”字符问题就应该消失了。:-) 谢谢你的建议,但我不知道怎么做我用Mongoose保存到MongoDB的其他字符串工作正常,所以我认为这不是问题所在,但我会调查一下。发现了问题。其中一个字符串中有一个字符:
Æ
(如单词“ether”)所以我用“AE”替换了它,现在一切都很顺利。