【问题标题】:MongoException with message ''\\0' not allowed in key密钥中不允许带有消息“\\0”的 MongoException
【发布时间】:2014-10-15 09:12:20
【问题描述】:

我在尝试通过基于 PHP 的 API 记录来自 C# 应用程序的请求时遇到此错误。

PHP Fatal error:  Uncaught exception 'MongoException' 
with message ''\\0' not allowed in key: \\0...'

在谷歌上搜索了一段时间后,我得出一个结论,我可以通过迭代来解决它 我试图在 Mongo 中插入的数组,并在键和值中替换空终止符。

我想知道是否有更优雅的解决方案,Mongo 无法处理这种情况?

我还在我的php.ini 文件中将mongo.allow_empty_keys 设置为1。

【问题讨论】:

    标签: c# php mongodb


    【解决方案1】:

    我不能给你一个更优雅的 PHP 解决方案,但这导致问题的原因是因为 BSON,因此 MongoDB 使用以空结尾的字符串、数组等。因此嵌入空值会引起混淆一般来说。这些事情最终会得到处理(例如,参见SERVER-1177),但即使是这样,如果可以避免的话,我仍然建议一般不要使用空值 - 这样做太容易想象边缘情况和可能的错误。

    【讨论】:

    • 感谢您的解释!我确实通过迭代解决了这个问题,因为我无法通过 API 控制请求,但现在我明白了我面临的问题。
    猜你喜欢
    • 2021-07-04
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多