mongoose - $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"]}}]}]}
解决方案
推荐阅读
- google-cloud-platform - Google Cloud Run 不同时支持域和子域
- python - 用循环检查一个部分是否存在于 json 数组中
- laravel - 消息:通知权限未被授予并被阻止
- grafana - grafana:仅安装客户端工具
- java - 在 Java 中实现 Git diff
- javascript - NodeIntegration 不起作用 [Electron/js]
- css - Gulp 对 css 文件进行排序(创建、复制、删除问题)
- php - Laravel 以干净的方式排除资源丰富的功能
- python - 如何创建一个循环来解析来自不和谐对话的所有消息?
- python - numba 中的 N 叉树