mongo 在聚合中使用 $add 聚合
mongo use $add aggregation within an aggregation
我正在尝试在相等聚合中添加 1 天,因此应该将 day+1 与我的数据库中包含 ISODATE 的字段 modifiedAt 进行比较。
很遗憾,我无法执行此操作。
mongodb 罗盘内的错误是 'Field must not begin with $ or . field path was $add'
{"$match":
{"$expr":
{
"$eq":["$modified",{"$add": [ISODate('xxx'),1*24*60*60000]}]}
}
}
您的查询似乎符合预期:
mongos> db.f.find()
{ "_id" : ObjectId("60038464a2d94094f8a216bc"), "modified" : ISODate("2021-01-17T00:27:16.280Z") }
{ "_id" : ObjectId("6003853ca2d94094f8a216bd"), "modified" : ISODate("2021-01-17T02:27:16.280Z") }
{ "_id" : ObjectId("60038544a2d94094f8a216be"), "modified" : ISODate("2021-01-16T02:27:16.280Z") }
{ "_id" : ObjectId("6003855fa2d94094f8a216bf"), "modified" : ISODate("2021-01-18T02:27:16.280Z") }
mongos> db.f.aggregate( [ {"$match": {"$expr": { "$eq":["$modified",{"$add": [ISODate("2021-01-17T02:27:16.280Z"),1*24*60*60000]}]} } } ])
{ "_id" : ObjectId("6003855fa2d94094f8a216bf"), "modified" : ISODate("2021-01-18T02:27:16.280Z") }
mongos>
我必须将我的指南针更新到新版本
我正在尝试在相等聚合中添加 1 天,因此应该将 day+1 与我的数据库中包含 ISODATE 的字段 modifiedAt 进行比较。
很遗憾,我无法执行此操作。 mongodb 罗盘内的错误是 'Field must not begin with $ or . field path was $add'
{"$match":
{"$expr":
{
"$eq":["$modified",{"$add": [ISODate('xxx'),1*24*60*60000]}]}
}
}
您的查询似乎符合预期:
mongos> db.f.find()
{ "_id" : ObjectId("60038464a2d94094f8a216bc"), "modified" : ISODate("2021-01-17T00:27:16.280Z") }
{ "_id" : ObjectId("6003853ca2d94094f8a216bd"), "modified" : ISODate("2021-01-17T02:27:16.280Z") }
{ "_id" : ObjectId("60038544a2d94094f8a216be"), "modified" : ISODate("2021-01-16T02:27:16.280Z") }
{ "_id" : ObjectId("6003855fa2d94094f8a216bf"), "modified" : ISODate("2021-01-18T02:27:16.280Z") }
mongos> db.f.aggregate( [ {"$match": {"$expr": { "$eq":["$modified",{"$add": [ISODate("2021-01-17T02:27:16.280Z"),1*24*60*60000]}]} } } ])
{ "_id" : ObjectId("6003855fa2d94094f8a216bf"), "modified" : ISODate("2021-01-18T02:27:16.280Z") }
mongos>
我必须将我的指南针更新到新版本