1
当我https://github.com/fons/cl-mongo阅读整个文档,了解(db.find "foo" (kv ($> "i" 3) ($< "j" 5)))
意味着查询时,“我> 3 和Ĵ< 5”。
我的问题是“$ or”的代码是什么? like i query when i> 3 or j < 5?
谢谢。
当我https://github.com/fons/cl-mongo阅读整个文档,了解(db.find "foo" (kv ($> "i" 3) ($< "j" 5)))
意味着查询时,“我> 3 和Ĵ< 5”。
我的问题是“$ or”的代码是什么? like i query when i> 3 or j < 5?
谢谢。
你需要翻译任何你需要用mongo的格式来表示使用cl-mongo的原语。
在蒙戈,我认为这将是:
{$or: [{i: {$gt: 3}},
{j: {$lt: 5}}]}
在CL-蒙戈,你翻译的 “对象” s到kv
形式, “阵列” s到列表中。许多蒙戈运营商有速记定义,但我认为$or
是不是其中之一,所以你需要或者定义或做它明确:
(kv "$or"
(list ($> i 3)
($< j 5)))
为$or
一个方便的宏可能是这样的:
(defmacro $or (&rest forms)
`(kv "$or" (list ,@forms)))
然后,你可以写
($or ($> i 3)
($< j 5))
(未经测试)。
非常感谢。你是天才! – 2014-09-01 18:38:20