Mgo用聚合查询空结果,但是mongo中相同的聚合脚本可以查询更多,代码之间有什么问题?

时间:2019-12-30 04:47:28

标签: mongodb go mgo

正确的mongodb脚本是:

    db.milestones.aggregate([
        {$unwind: "$milestones"},
        {$match: {
            "cluster":{$in: ['RIM']},
            "milestones.kpi.uniqueid": 1,
            "milestones.plannedlateststartdate" : {
                $gte: 1546143215,
                $lte: 1577679215
}}}])

这是我的转到代码:

aggregate := []bson.M{
    {
        "$unwind": "$milestones",
    },
}
match := bson.M{
    "$match": bson.M{
        "milestones.kpi.uniqueid": 1,
    },
}
if len(clusters) > 0 {
    match["$match"].(bson.M)["cluster"] = bson.M{
        "$in": clusters,
    }
}
// [startDate, endDate]
const key = `milestones.plannedlateststartdate`
filter := bson.M{}
filter["$gte"] = 1546143215
filter["$lte"] = 1577679215
match["$match"].(bson.M)[key] = filter

aggregate = append(aggregate, match)
var all = make([]interface, 0)
err := s.DB(c.dbName).C(collMilestones).Pipe(aggregate).All(&all)

我认为从mongo开始使用相同的脚本,但结果却有所不同。 mongo脚本中的结果很多,但执行时为0。

0 个答案:

没有答案