【发布时间】:2016-07-28 23:01:29
【问题描述】:
我已经(在代码中)在 MongoDB 中创建了一个默认集合并正在查询它,并发现当我在本地运行代码时会返回所有数据,而在部署中查询它时不会返回服务器。它最多返回 256 条记录。
注意事项:
- 这不是一个有上限的集合。
- 本地,我运行的是3.2.5,远程的MongoDB版本是2.4.12
- 我没有使用限制参数。当我使用它时,我可以同时限制本地和部署服务器,但部署服务器仍然不会返回超过 256 条记录。
- 从服务器获取的数据量
- 代码在 Clojure 中,使用 Monger,它本身只是调用 Java com.mongodb 的东西。
- 我可以使用 Robomongo 从远程服务器中提取超过 256 条记录,但我不确定它是如何做到的,因为我无法从命令行连接到远程(使用相同的凭据验证失败,所以我我在那儿猜测版本不兼容)。
感谢任何帮助。
更新:找到触发问题的东西:当我对输出进行排序时,它会将输出减少到 256——但只有当我从 Mongo 2.4 中提取时!我不知道这是 MongoDB 本身、MongoDB java 类还是 Monger,但这里是说明问题的代码,尽可能简单:
(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))
【问题讨论】:
-
您能否分享一些代码,以便我们自己重现该问题?
-
呜呜呜。就是这样。
-
我在带有 clojure 和 monger 的 MongoDB 2.4 实例上看到了这一点。但是在同一个实例上,mongo 命令行似乎工作正常:
db.photos.find( { keywords: "lisa" }).sort( { datetime: 1} ).count()688