【发布时间】:2020-12-19 19:54:33
【问题描述】:
我有一个页面列出了前端的所有学生数据。目前,我正在获取所有文档,无论它们的 showStudentProfile 状态如何。现在,我需要根据以下条件使用 Mongoose 查询从 mongoDB 中获取所有学生。
条件:
- 如果
showStudentProfile === hide&&owner === userId(userId是登录用户),则获取学生列表。即,他应该只能获取他自己的隐藏文件。
2.如果showStudentProfile === custom,则仅获取当前日期在dateRange字段之间的那些文档。
- 如果是
showStudentProfile === yes,则获取文档。
学生模式如下:
[{
"_id": ObjectId("5f44af5a232afe415dc2bc01"),
"name" : "abc",
"sub" : ["math", "generalScience"],
"showStudentProfile" : "yes",
"dateRange" : [],
"owner": ObjectId("5f44af5a232afe415dc2bc03"),
},{
"_id": ObjectId("5f44af5a232afe415dc2bc04"),
"name" : "def",
"sub" : ["physics", "chemistry"],
"showStudentProfile" : "hide",
"dateRange" : [],
"owner": ObjectId("5f44af5a232afe415dc2bc03"),
},{
"_id": ObjectId("5f44af5a232afe415dc2bc05"),
"name" : "ghi",
"sub" : ["math", "science"],
"showStudentProfile" : "custom",
"dateRange" : [
"2020-07-28T11:14:50.652Z",
"2020-08-28T11:14:50.652Z"
],
"owner": ObjectId("5f44af5a232afe415dc2bc03"),
},{
"_id": ObjectId("5f44af5a232afe415dc2bc07"),
"name" : "xyz",
"sub" : ["physics", "chemistry"],
"showStudentProfile" : "hide",
"dateRange" : [],
"owner": ObjectId("5f44af5a232afe415dc2bc08"),
}]
我的尝试:
StudentModel.find({showStudentProfile:"hide", owner:"userId"})
但这只会获取那些showStudentProfile 为隐藏且owner 为userId 的文档。但我还需要获取showStudentProfile 为custom 的文档,如果custom 并考虑到currentDate,我需要获取位于dateRange 字段之间的文档。
如果userId = ObjectId("5f44af5a232afe415dc2bc03") 并考虑今天的日期,预期结果:
[{
"_id": ObjectId("5f44af5a232afe415dc2bc01"),
"name" : "abc",
"sub" : ["math", "generalScience"],
"showStudentProfile" : "yes",
"dateRange" : [],
"owner": ObjectId("5f44af5a232afe415dc2bc03"),
},{
"_id": ObjectId("5f44af5a232afe415dc2bc04"),
"name" : "def",
"sub" : ["physics", "chemistry"],
"showStudentProfile" : "hide",
"dateRange" : [],
"owner": ObjectId("5f44af5a232afe415dc2bc03"),
}];
【问题讨论】:
-
如果答案对你有帮助,请点击打勾并投票以帮助寻求此类问题的人
标签: node.js reactjs mongodb express mongoose