我想知道,$或查询中的条件顺序是否重要?
E.g。如果未找到userrole
的文档,那么此查询是否可靠,以获取角色与userrole
匹配的文档或仅 的任何其他文档?
{$or: [{role: 'userrole'},{}]}, {limit: 1}
答案 0 :(得分:2)
订单无关紧要。
由于运算符$or$
以文档方式进行评估,因此查询
{$or: [{role: 'userrole'},{}]}
将评估每个文档的true
,因此它将始终返回集合中每个文档。
此外,如果您使用limit()
方法,则会返回集合中的第一个n
文档(根据其内部排序)。