Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB';错误:检测到非ascii字符';关于Node.js_Mongodb_Node.js_Mongoose - Fatal编程技术网

MongoDB';错误:检测到非ascii字符';关于Node.js

MongoDB';错误:检测到非ascii字符';关于Node.js,mongodb,node.js,mongoose,Mongodb,Node.js,Mongoose,我正试图将一大块数据解析到一个新的MongoDB数据库中,当我运行作业时,当我执行db.myCollection.find() 错误为错误:检测到非ascii字符 我使用Node.js和Mongoose来填充数据库。我所看到的唯一可能导致问题的字符是”、、和-,但我对所有这些字符都进行了.replace。我试着逃离它们(\),我试着完全移除它们,但似乎没有任何效果 我最大的问题是,我在保存对象时没有收到任何错误,我只是在尝试查看集合时收到该消息 是否有关于清理MongoDB输入的任何信息?如果是

我正试图将一大块数据解析到一个新的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”替换了它,现在一切都很顺利。