这就是我开始查询一个特定元素的方式。
results << read_db.collection("users").find(:created_at => {:$gt => initial_date}).to_a
现在,我试图查询不止一个。
db.inventory.find({ $and: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )
现在我如何建立我的查询?基本上我会有一堆 if 语句,如果是真的,我想扩展我的查询。我听说在另一种语言中有一个 .extend 命令,在 ruby 中有类似的东西吗?
基本上我想这样做:
if price
query = "{ price: 1.99 }"
end
if qty
query = query + "{ qty: { $lt: 20 } }"
end
而不仅仅是拥有
db.inventory.find({ $and: [query]})
这种语法是错误的,最好的方法是什么?