从GoLang的mongodb获取最后一个插入的元素

时间:2016-06-30 15:31:55

标签: mongodb go

我有这样的结构:

type SavedData struct {
    ID   bson.ObjectId `bson:"_id"`
    Data string
    Date time.Time
}

我也有我的

collection := database.C("coll_name")

如何检索此集合中最后插入的条目?

谢谢

3 个答案:

答案 0 :(得分:2)

接受的答案是 5 岁。这应该适用于今天的 mongodb 驱动程序

collection.FindOne(ctx, bson.M{"$natural": -1})

答案 1 :(得分:1)

显然mongoDB默认按照插入时间排序 this question所以你可以像这样跳过集合的前N个元素。

var myData SavedData 
dbSize, err := collection.Count()
if err != nil {
        return err
}

err = c.Find(nil).skip(dbSize-1).One(&myData)
if err != nil {
        return err
}

或者您可以按相反顺序搜索

c.Find(bson.M{ "$natural": -1 }).One(&myData)

答案 2 :(得分:0)

如果你想获取集合中的最新文档,你必须使用 mongo-driver 的选项

import(
    ...
    "go.mongodb.org/mongo-driver/mongo/options"
)

myOptions := options.FindOne()
myOptions.SetSort(bson.M{"$natural":-1})
collection.FindOne(ctx, bson.M{}, myOptions)