首页 > 解决方案 > $and not working in $or 意味着 $or 部分不工作

问题描述

"{"_id":ObjectId("**5c41c0ec9c06dd30e8e98b3c**"),"matchUsers":[{"_id":ObjectId("5c42d4bc87eee24a1b291b6e"),"userId":ObjectId("5c40692d47502b0a7945b114")}],"rightSwiped":[{"count":1,"_id":ObjectId("5c46c4964c9d8216ec1bf0d5"),"swipedTime":ISODate("2019-01-22T07:21:58.000Z"),"userId":ObjectId("5c456b2192c95c6003736815")}],"cupidSwiped":[{"count":2,"_id":ObjectId("5c46caf7ca46ee30f2721431"),"swipedTime":ISODate("2019-01-22T07:49:11.000Z"),"userId":ObjectId("5c456b2192c95c6003736815")}],"leftSwiped":[{"count":1,"_id":ObjectId("5c45c7d2f93046360bc4f6da"),"swipedTime":ISODate("2019-01-21T13:23:30.000Z"),"userId":ObjectId("5c41c2514e354a34f7180e85")},{"count":1,"_id":ObjectId("5c46c4964c9d8216ec1bf0d5"),"swipedTime":ISODate("2019-01-22T07:21:58.000Z"),"userId":ObjectId("5c456b2192c95c6003736815")}],"updateStatus":1,"gender":"female"}" 

这是一个文档(上图)
1)查询中没有错误
2)我不希望根据条件返回此文档
我已经准备好离开了 刷了这个用户
3)我的 id 是5c456b2192c95c6003736815 并且左刷了用户 id 5c41c0ec9c06dd30e8e98b3c
4)如果刷了用户( id 是5c41c0ec9c06dd30e8e98b3c)然后不返回列表中的这个用户(用户列表)但用户在列表中

({"rightSwiped.userId":{"$ne":"我的身份证"}})

这个条件不起作用

我希望得到我的问题

{"$and":[{"_id":{"$ne":"5c456b2192c95c6003736815"}},{"updateStatus":1},{"gender":"female"},{"$or":[{"$and":[{"leftSwiped.userId":"5c456b2192c95c6003736815"},{"leftSwiped.swipedTime":{"$gte":1548056871000}}]},{"$and":[{"rightSwiped.userId":"5c456b2192c95c6003736815"},{"rightSwiped.swipedTime":{"$gte":1548056871000}}]},{"rightSwiped.userId":{"$ne":"5c456b2192c95c6003736815"}},{"leftSwiped":{"$elemMatch":{"userId":{"$ne":"5c456b2192c95c6003736815"}}}},{"userIds":{"$nin":["5c456b2192c95c6003736815"]}}]}]}

标签: mongoose

解决方案


推荐阅读