我有一个函数photos-with-keyword-starting
,它使用monger从MongoDB实例获取给定关键字的照片列表,另一个使用set/intersection
查找这些照片的子集。
(defn photos-with-keywords-starting [stems]
(apply set/intersection
(map set
(map photos-with-keyword-starting stems))))
之前我认为这样可以正常工作,但是由于添加了更多记录,交叉点无法正常工作 - 它错过了许多包含两个关键字的记录。
我注意到对函数photos-with-keyword-starting
的调用总是返回最多256个结果:
=> (count (photos-with-keyword-starting "lisa"))
256
以下是该功能的代码:
(defn photos-with-keyword-starting [stem]
(with-db (q/find {:keywords {$regex (str "^" stem)}})
(q/sort {:datetime 1})))
因为如果有超过256个,在MongoDB中查找记录的调用不返回所有记录,在指定多个关键字时,我没有得到正确的子集。
如何增加此限制?
答案 0 :(得分:0)
您可以简单地将函数photos-with-keyword-starting
中的日期时间转换为字符串,如果您可以使用该字符串。
或者,您可以从输出中删除逻辑副本,例如:
(->>
-your-result-
(group-by #(update % :datetime str))
(map (comp first val)))