"i" 3) ($3 AND j3 或 j i 3) -6ren">
gpt4 book ai didi

mongodb - 使用 cl-mongo 时如何表达 $or

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:44 25 4
gpt4 key购买 nike

我在 https://github.com/fons/cl-mongo 阅读了整个文档并了解(db.find "foo" (kv ($> "i" 3) ($< "j" 5)))表示当“i>3 AND j<5”时查询。
我的问题是“$or”的代码是什么?喜欢查询当 i>3 j<5?
谢谢。

最佳答案

您需要使用 cl-mongo 的原语翻译您需要以 mongo 格式表达的任何内容。

在 mongo 中,我认为它会是:

{$or: [{i: {$gt: 3}},
{j: {$lt: 5}}]}

在 cl-mongo 中,您将“对象”转换为 kv 形式,将“数组”转换为列表。许多 mongo 运算符都定义了简写形式,但我认为 $or 不是其中之一,因此您需要定义它或显式定义它:

(kv "$or"
(list ($> i 3)
($< j 5)))

$or 的便捷宏可能如下所示:

(defmacro $or (&rest forms)
`(kv "$or" (list ,@forms)))

然后就可以写了

($or ($> i 3)
($< j 5))

(未经测试)。

关于mongodb - 使用 cl-mongo 时如何表达 $or,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com