首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB:查询有隐式限制(256)吗?

MongoDB:查询有隐式限制(256)吗?
EN

Stack Overflow用户
提问于 2016-07-28 23:01:29
回答 1查看 432关注 0票数 2

我(在代码中)在MongoDB中创建了一个默认集合,并正在对其进行查询,并发现虽然代码在本地运行时会返回所有数据,但当我在部署服务器上查询它时却不会返回。它最多返回256条记录。

备注:

  • 这不是有上限的收藏。
  • 在本地,我运行3.2.5,远程MongoDB版本为2.4.12
  • 我不使用极限参数。当我使用它时,我可以限制本地和部署服务器,但是部署服务器仍然不会返回超过256条记录。
  • 从服务器获取的数据量小于500 K。没什么大不了的。
  • 代码是Clojure中的,它使用的是Monger,它本身就是调用Java com.mongodb的东西。
    • 我可以使用Robomongo从远程服务器获取256多条记录,但我不确定它是如何做到的,因为我无法从命令行连接到远程服务器(auth使用相同的凭据失败,因此猜测版本不兼容)。

任何帮助都是非常感谢的。

更新:找到触发问题的东西:当我对输出进行排序时,它会将输出减少到256,但只有当我从MONGO2.4中提取时才会这样做!我不知道这是一个MongoDB本身、MongoDB java类还是Monger,但是下面的代码说明了这个问题,尽可能简单:

代码语言:javascript
复制
(ns mdbtest.core
  (:require [monger.core :as mg]
            [monger.query :as mq]))

(defn get-list []
  (let [coll (mq/with-collection
               (mg/get-db
                 (mg/connect {:host "old-mongo"}) "mydb") "saves"
               (mq/sort (array-map :createdDate -1)))]   ;;<<==remove sort
    coll))
EN

回答 1

Stack Overflow用户

发布于 2018-04-02 19:57:32

您需要指定更大的批处理大小,默认为256条记录。

下面是我自己代码中的一个示例:

代码语言:javascript
复制
=> (count (with-db (q/find {:keywords "lisa"}) 
                  (q/sort {:datetime 1}) ))
256

=> (count (with-db (q/find {:keywords "lisa"}) 
                  (q/sort {:datetime 1}) 
                  (q/batch-size 1000) ))
688

请参阅更多信息:size

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38648102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档