【发布时间】:2021-04-21 14:52:00
【问题描述】:
我正在尝试从 mongodb 返回一些日期范围的记录,并且我正在尝试使用以下查询来查询字段 StartDate 的集合测试:
db.test.aggregate([
{
$match: {
"StartDate": {
"$gte": [
{
"$dateFromString": {
"dateString": "2021-03-01T00:00:00.0000000Z"
}
}
],
"$lt": [
{
"$dateFromString": {
"dateString": "2021-04-01T00:00:00.0000000Z"
}
}
]
}
}
}
])
上述查询没有返回任何内容,但我确信日期之间有一些数据。任何想法我错过了什么?谢谢!
【问题讨论】:
-
您使用的是什么编程语言?试试 JS
{ StartDate: { $gte: new Date("2021-03-01T00:00:00.0000000Z"), $lt: new Date("2021-04-01T00:00:00.0000000Z") } } -
$match使用查询运算符,为了使用聚合运算符,它们需要在$expr表达式中 -
嗨,Turivishal,我之前使用过 JS,它正在工作,但 Azure Logic App 无法识别 JS,所以我必须找到另一种方法来让它工作,这就是我尝试使用的原因纯 Mongo 查询 $dateFromString 首先将字符串转换为日期并进行比较,但它不起作用。
-
嗨,乔,我将 $match 更改为 $expr 并收到错误“无法识别的管道阶段名称:$expr”。我正在对 Cosmos DB (mongo API) 运行查询。也许 CosmosDB 不支持它?
标签: mongodb mongodb-query