【发布时间】:2013-05-22 06:38:13
【问题描述】:
在我们的 MongoDb 中,我们正在实现以下文档结构:
Parent
|-- List<Children>
|-- ChildField1
|-- ChildField2
...
所以我们有一个顶级文档,其中包含一个子文档列表,每个子文档都有一些成员。我们的一个查询对 ChildField1 的值执行 findOne,该值是一个字符串。只要字符串的大小不太长,这就会起作用。一旦我们存储了更大的字符串(在我的测试中它大于 1011 个字符),我们就可以存储文档,但 findOne 总是返回“null”。
无论我使用 Spring Mongo Data 还是在 mongo shell 中触发查询,都会发生这种情况,所以我认为这是一个 Mongo 问题。当我在集合上调用 find() 时,所有元素都会显示,但只要添加对该值的查询,即使 find 也不会返回任何内容。
谁能告诉我这里的问题是什么以及如何解决它?
【问题讨论】:
-
您的查询是什么样的?查询字符串也很大还是只是方法字符串?
-
发生这种情况的一种情况是,当您正在执行 find() 的字段被索引时。因为存储索引条目的索引键的值大小有限制。 pastebin.com/wtWu0ppZ
-
如下所述,这正是我们的问题......谢谢:-)
标签: mongodb null find long-integer