#javascript #database #mongodb #datetime #nosql
#javascript #База данных #mongodb #дата и время #nosql
Вопрос:
Я борюсь с тем, как запрашивать в поле массива. Предположим, у меня есть такие данные, как:
const data = [
{
"chapter": 1,
"targets": [
{
type: 'user',
recipientId: 1
}
],
"challenge": [
{
"challengeId": "ch-1",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
{
"challengeId": "ch-2",
"targetExpired": "2020-10-14T17:25:00.000 00:00"
},
{
"challengeId": "ch-3",
"targetExpired": "2020-10-14T18:25:00.000 00:00"
},
]
},
{
"chapter": 1,
"targets": [
{
type: 'user',
recipientId: 2
}
],
"challenge": [
{
"challengeId": "ch-2",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
{
"challengeId": "ch-3",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
{
"challengeId": "ch-4",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
]
},
{
"chapter": 1,
"targets": [
{
type: 'user',
recipientId: 4
}
],
"challenge": [
{
"challengeId": "ch-2",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
{
"challengeId": "ch-3",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
{
"challengeId": "ch-4",
"targetExpired": "2020-10-14T16:25:00.000 00:00"
},
]
},
],
Если входные input = [1,2,4]
данные для проверки с recipientId
условием запроса:
- Если срок действия «some»
targetExpired
еще не истек (имеется в виду sometargetExpired < new Date()
), результат получает все данные в БД. - Если «все»
targetExpired
истекло, например, заrecipientId:2
все время истекло. В результате я должен получить каждую коллекцию, кромеrecipientId: 2
Извините, я не видел ни одного API в соответствии с этим условием. Есть идеи? Спасибо.