Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按数组长度排序mongodb_Mongodb_Go - Fatal编程技术网

按数组长度排序mongodb

按数组长度排序mongodb,mongodb,go,Mongodb,Go,我尝试按数组大小对搜索进行排序,我尝试在mongodb中执行以下操作,结果成功: db.getCollection('tweet').aggregate({ $unwind:'$complaints'}, { $group : {_id:'$_id', count:{$sum:1}}}, { $sort :{ count: 1}}) 本申报表: { "_id" : ObjectId(&q

我尝试按数组大小对搜索进行排序,我尝试在mongodb中执行以下操作,结果成功:

db.getCollection('tweet').aggregate({ $unwind:'$complaints'}, 
                 { $group : {_id:'$_id', count:{$sum:1}}}, 
                 { $sort :{ count: 1}})
本申报表:

    {
    "_id" : ObjectId("5fade9754b0cac60df630ab2"),
    "count" : 2.0
}
试着这样做吧

update := bson.M{
    "$group": bson.M{
        "count": bson.M{"$sum": 1},
    },
}




conditions:= make([]bson.M, 0)
conditions= append(conditions, bson.M{"$unwind": "$complaints"})
conditions= append(conditions, bson.M{"$sort": bson.M{"count": -1}})
conditions= append(conditions, update)
conditions= append(conditions, bson.M{"$skip": skip})
conditions= append(conditions, bson.M{"$limit": 20})

cursor, err := col.Aggregate(ctx, conditions)
var result []models.complaintsCount
err = cursor.All(ctx, &result)
if err != nil {
    return result, false
struct models.complaintsCount:

type complaintsCount struct {
    ID    primitive.ObjectID `bson:"_id" json:"_id,omitempty"`
    Count int                `bson:"count" json:"count"`
}

但是返回错误,有什么办法吗?

您的group语句缺少_id,排序应该在group之后您的group语句缺少_id,排序应该在group之后