我正在使用Mongoid ruby gem与MongoDB进行交互,当我尝试从查询中获取某个内容时,它会添加$limit: -1
(即负数)当我希望它只使用{ {1}}。我尝试在控制台中执行相同的操作,但它没有更改返回的文档。
负面限制意味着什么特别的东西吗?
答案 0 :(得分:8)
在"OP_QUERY" section of the "Mongo Wire Protocol" documentation的“numberToReturn”标题下有一个关于负限制的说明。
“如果客户端驱动程序提供'限制'功能(如SQL LIMIT 关键字),然后由客户端驱动程序确保不再 比指定数量的文件返回到调用 应用。如果numberToReturn为0,则db将使用默认值 回报大小。如果数字为负数,则数据库将返回 那个数字并关闭光标。该查询没有进一步的结果 可以拿来。“
有关游标和限制的详细信息,请参阅"Queries and Cursors" documentation,特别是现已删除的"Execution of queries in batches"部分。
答案 1 :(得分:5)
极限值的符号决定了它的“硬限制”还是“软限制”。 “硬限制”(负号)查询在返回最大数量的文档后关闭游标。 “软限制”使光标保持打开状态,以防响应无法满足限制指定的文档数量。