我想从MongoDB集合中查找2014-08-01的数据。 MongoDB中的日期是ISO格式。我写下面的查询,但它给了我非常大的数字,我怀疑它不是1天的数据。有人可以让我知道查询有什么问题。 sd是关键
db.history.count({sd:{$gte: new Date("2014-08-01")},sd:{$lt:new Date("2014-08-01")}})
答案 0 :(得分:5)
db.history.count({ "sd": {
"$gte": new Date("2014-08-01"), "$lt": new Date("2014-08-02")
}})
否则该参数被认为是独立的并且是逻辑“和”条件。但实际上,因为您在“sd”字段中使用相同的“密钥”,所以在JSON / BSON文档中不允许这样做,并且违反了哈希结构的“唯一”密钥规则。因此,一个条件会覆盖另一个条件,只会应用一个条件。
这就是你的结果错误的原因。请使用上面显示的内容。
答案 1 :(得分:0)
await model.find(
{
$or:
[
{
createdDate:
{ $gte: new Date(startDate), $lte: new Date(endDate) },
},
{
createdDate:
{ $gte: new Date(startDate), $lte: new Date(endDate).setDate(new Date(endDate).getDate() + 1) },
},
],
},
)
请为startDate和endDate分配值。上面的示例将有助于查找来自不同日期和同一日期的不同数据 例如,如果您尝试从“ 2020-06-22”到“ 2020-07-02”获取数据,则将从该日期范围中获取数据,其他人则尝试在该代码将对该机制起作用的同一日期获取数据也
谢谢