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