Node.js 上的 MongoDB 'error: non ascii character detected'

标签 mongodb node.js mongoose

我正在尝试将非常大的数据 block 解析到新的 MongoDB 数据库中,当我运行该作业时,我在执行 db.myCollection.find() 时不断收到错误。
错误为错误:检测到非 ascii 字符

我正在使用 Node.js 和 Mongoose 来填充数据库。我见过的唯一可能导致问题的字符是 '-,但我已经对所有这些字符进行了 .replace。我尝试转义它们(\),并尝试完全删除它们,但似乎没有任何效果。

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

有没有关于清理 MongoDB 输入的信息?

最佳答案

如果它是字符串数据,那么在插入之前可以确保它被编码为 UTF8。大多数驱动程序应该检查这一点,但它可能在 Mongoose 驱动程序中被忽略。 MongoDB 中的所有字符串都存储为 UTF8,如 BSON 规范所定义。

关于Node.js 上的 MongoDB 'error: non ascii character detected',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714990/

相关文章:

MongoDB 从数组中查找键等于字符串的位置

node.js - 将 Mongoose 数组元素与数组进行比较

mongodb - 使用 Mongodb 的 .Net Core Web Api 身份验证

具有 3 个子级别的 MongoDB 嵌套查找

node.js - 无法在 Mongoose 中按 id 找到记录

C# MongoDB 驱动程序 2.0 - 从近查询中获取距离

node.js - Arduino Socket.io 通信

javascript - JSON 自动解析为 Javascript 中的对象

node.js - 为什么 npm 包经常使用 require 的相对路径(例如 ../../file)?

node.js - 如何更新 Mongoose 的特定字段