【发布时间】:2012-02-07 23:56:28
【问题描述】:
我注意到 MongoDB 在将文档保存到集合时会将多个空间折叠在一起(合并为一个空间)。它不仅仅是前导和尾随空格,而是任何空格序列 - 并且只有空格,而不是所有空格(仅使用空格和制表符进行测试)。使用 Java 驱动程序和交互式 mongo shell 时会发生这种情况,所以我猜这是数据存储本身的“功能”。
诚然,我不喜欢我的值中有多余的空格,我在剥离它们的过程中发现了这一点。但是,这种行为看起来很奇怪,因为通常期望数据存储不会“烹饪”或以其他方式更改超出符合底层存储约束的最低要求的数据。否则(未向用户/开发人员声明)可能会导致数据或精度丢失。此外,为什么要折叠空间而不是在头部和尾部完全修剪它们 - 为什么在非空间字符之间折叠它们?
> db.test.remove()
> db.test.save({x: " x \t\t\t x "})
> db.test.findOne()
{ "x" : " x \t\t\t x " }
是我错误地启用了这个功能,还是默认启用了?我在JIRA 上找不到任何东西。这对我来说似乎是一个错误,但也许我只是很特别。 MongoDB 2.0.2版
【问题讨论】:
-
它在 2.0.2 上对我正常工作
-
确认我在 2.0.2 上也能正常工作
-
奇怪...我会尝试另一个版本(可能是每晚)来帮助隔离问题。感谢@pingw33n 和@jdi 的反馈!
标签: mongodb mongodb-java mongo-shell