我试图做这样的事情:
select * from table where not (a=3 and b=4 and c=3 or x=4)
我希望这可行:
db.table.find( {
$not : {
$or : [
{ $and : [ { a : 3 },
{ b : 4 },
{ c : 3 }
] } ,
{ x : 4 }
}
} )
但这不起作用。
我已阅读this article
这样的事情:{a : { $ne : 3}, b : { $ne : 4} ...}
。不
不适合我。
因为:我的程序从用户那里获取像(a=3 and b=4 and c=3 or x=4)
这样的不同查询(查询到多级嵌入对象和数组)。
并且要编写程序,它会自动将$不应用于那些查询
漫长而不讨好的任务。你有什么想法吗?
PS为什么mongo没有这么简单的方法呢? 例如,查找与条件匹配的所有文档,并从剩余文档的集合中获取