如何在mongo中查询1 = 1或1 = 0?

时间:2015-09-02 17:02:59

标签: mongodb

在SQL中,可以添加1 = 1或1 = 0查询条件,分别基本上返回所有记录或不记录任何记录。我怎样才能在mongo中做同样的事情?

2 个答案:

答案 0 :(得分:2)

如评论中所述,mongo中1=1查询条件的等效性是使用空对象{}作为查询。例如,db.foos.find({})

通过将空数组传递给1=0查询条件,可以在mongo中模拟$in查询条件。例如,db.foos.find({ _id: { $in: [] } })。此外,使用始终在$where查询条件中返回false的javascript函数也可以。例如,db.foos.find({ $where: function() { return false } })

1=0{ _id: 0 }{ _id: null }相比,这两个条件的附加好处是,即使0null是有效值,它也会有效对于您馆藏中的_id。但是,我不确定这些查询是否会带来额外的性能损失。

答案 1 :(得分:1)

现在(从3.6版开始),您可以直接表达这一点:

{ $expr: { $eq: [1, 1] } }

{ $expr: { $eq: [0, 1] } }