У меня есть документы в следующей структуре, сохраненные в моем mongodb version 3.40
тест
{
"_id" : ObjectId("5d08ad7ed510022ebc548905"),
"userId" : "2",
"startTime" : "2019-03-20 17:52:25",
"endTime" : "2019-03-20 17:53:49",
"loginTime" : 10
},
{
"_id" : ObjectId("5d08ad7ed510022ebc548904"),
"userId" : "1",
"startTime" : "2019-03-20 17:52:25",
"endTime" : "2019-03-20 17:53:49",
"loginTime" : 10
},{
"_id" : ObjectId("5d08ad7ed510022ebc548903"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 55
},
{
"_id" : ObjectId("5d08ad7ed510022ebc548902"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 84
}
Теперь я хочу получить результаты, например gte
& lte
Я написал запрос, но он не работает должным образом. Значит, я не получаю ожидаемый результат.
Я получаю ниже вывода
{
"_id" : ObjectId("5d08ad7ed510022ebc548902"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 84
},
{
"_id" : ObjectId("5d08ad7ed510022ebc548903"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 55
}
Ожидаемый результат
{
"_id" : ObjectId("5d08ad7ed510022ebc548902"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 84
},
{
"_id" : ObjectId("5d08ad7ed510022ebc548903"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 55
},
{
"_id" : ObjectId("5d08ad7ed510022ebc548904"),
"userId" : "1",
"startTime" : "2019-03-20 17:52:25",
"endTime" : "2019-03-20 17:53:49",
"loginTime" : 10
}
Мой код
db.test.aggregate([
{ "$match":
{
'userId' : { $in : ['1']},
'startTime': {$gte: '2019-03-19' },
'endTime': {$lte: '2019-03-20' }
}
}
])
Я искал много раз, но я получаю ответ, любезно, помогите мне с этим, если возможно, опубликуйте ваш ответ здесь
Обновлен код, но не работает
db.test.aggregate([
{
$match: {
$and: [
{userId: {$in: ["1"]}},
{ $or : [ { startTime : { $gte : '2019-03-19' } }, { endTime : { $lt : '2019-03-19' } } ] }
]
}
}
])
ожидаемый результат, который я не должен получить 2019-03-20
Получение вывода
/* 1 createdAt:6/18/2019, 2:53:10 PM*/
{
"_id" : ObjectId("5d08ad7ed510022ebc548902"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 84
},
/* 2 createdAt:6/18/2019, 2:53:10 PM*/
{
"_id" : ObjectId("5d08ad7ed510022ebc548903"),
"userId" : "1",
"startTime" : "2019-03-19 17:52:25",
"endTime" : "2019-03-19 17:53:49",
"loginTime" : 55
},
/* 3 createdAt:6/18/2019, 2:53:10 PM*/
{
"_id" : ObjectId("5d08ad7ed510022ebc548904"),
"userId" : "1",
"startTime" : "2019-03-20 17:52:25",
"endTime" : "2019-03-20 17:53:49",
"loginTime" : 10
}