只有当MongoDB数据库中的条目已经存在时,才更新该条目

本文关键字:存在 更新 数据库 MongoDB | 更新日期: 2023-09-27 18:16:05

所以我存储了一个加入IRC聊天的用户日志,记录他们登录的时间(以及其他东西(和注销的时间,现在每次发生这种情况我都会添加一个新条目,每当我需要信息时,我只需将其全部获取并使用Last((来获取最新信息,我意识到这是低效的,因为随着时间的推移和越来越多的用户登录,它只会变得更慢,那么我该如何更新最后一个条目(这样我就不必删除所有内容,也不必丢失所有信息(,但是,如果该用户以前没有加入,请创建一个新条目。

同时,有没有一种有效的方法可以删除除最后一个条目之外的所有条目?

我使用的编程语言是C#。

只有当MongoDB数据库中的条目已经存在时,才更新该条目

您可以使用findAndModifyhttp://docs.mongodb.org/manual/reference/command/findAndModify/#dbcmd.findAndModify以找到现有记录,并且如果存在则适当地更新CCD_ 2或CCD_。

如果它不存在,你可以去创建它。

由于findAndmodify也支持排序顺序,因此您甚至可以在每个用户保留多个记录的情况下使用该排序顺序-findAndModify最近打开的登录以关闭它。但是,除非您需要每个会话的审核跟踪,否则我会坚持使用单个用户记录,或者如果您确实需要审核跟踪,请在单独的集合中进行,并且仍然保留用户记录中的最后一次登录/注销。

我认为最好的方法是为lastLogIn或logoff保留另一个单独的字段。