您好,登錄后才能下訂單哦!
pipeline?:=?[]bson.M{ ???bson.M{"$match":?bson.M{"id":?uid}}, ???bson.M{"$project":?bson.M{"last_msg":?1,?"_id":?0}}, ???bson.M{"$unwind":?"$last_msg"}, ???bson.M{"$sort":?bson.M{"last_msg":?-1}}, ???bson.M{"$skip":?2}, ???bson.M{"$limit":?2}, } userModel?:=?MongoDb.C("user") pipe?:=?userModel.Pipe(pipeline) var?data?[]interface{} err?:=?pipe.All(&data) fmt.Println(data) fmt.Println(len(data))
等效于(查詢id為1,只取出last_msg字段,不取_id,并將last_msg的數組取出展開,按last_msg.date逆序排列,跳過前2條,只選取2條):
db.getCollection("user").aggregate([ ????{$match:?{"id":"1"}}, ????{$project:{"last_msg":1,?"_id":0}}, ????{$unwind:?"$last_msg"}, ????{$sort:?{"last_msg.date":-1}}, ????{$skip:2}, ????{$limit:2} ]);
mongodb表結構:
其中一條數據:
{ ????"_id":?ObjectId("5d2b24c16197934ef6db77ba"), ????"id":?"1", ????"account":?"你的女神", ????"passwd":?"5d78eb174d633345054faf7d56a612ed", ????"friends":?[ ????????{ ????????????"uid":?"2" ????????}, ????????{ ????????????"uid":?"3" ????????} ????], ????"last_msg":?[ ????????{ ????????????"date":?"1234567890", ????????????"from_id":?"2", ????????????"msg":?"在么" ????????}, ????????{ ????????????"date":?"1234567895", ????????????"from_id":?"3", ????????????"msg":?"女神" ????????}, ????????{ ????????????"date":?"1234567898", ????????????"from_id":?"4", ????????????"msg":?"求你了,理理我好么" ????????}, ????????{ ????????????"date":?"1234567999", ????????????"from_id":?"5", ????????????"msg":?"你是不是在和別人..." ????????} ????] }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。