【问题标题】:Mongo query returns null even though entry is returned by find即使 find 返回了条目,Mongo 查询也会返回 null
【发布时间】: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


【解决方案1】:

如果您使用的是索引,您可能会达到 1024 字节的索引限制 - http://docs.mongodb.org/manual/reference/limits/

【讨论】:

  • 嗯.. d'oh.. 没有在文档中发现,谢谢.. 这正是这里的问题..
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
相关资源
最近更新 更多