服务器后端只保存一天最后一条信息

2018-09-25 10:34:23 +08:00
 cpj
数据是保存到 mongodb,希望保存某条数据时,只保存一天最后一条。我想到的是,保存每条数据之前,按创建时间的字段,查询所有记录并删除。不知道有没有更好的做法
2556 次点击
所在节点    Python
12 条回复
MyPassWordis
2018-09-25 10:38:42 +08:00
日期为主键然后 insert ?
simonliu2018
2018-09-25 10:38:42 +08:00
把数据库的主键设计成日期,比如:2018 年 09 月 25 日,如果发现有记录就更新,没有就新增。

可以再优化一下主键,时间戳的精度是秒,如果把时间戳除一天的秒数( 86400 ),也相当于是当天的日期。
cpj
2018-09-25 10:41:51 +08:00
@MyPassWordis 可以
cpj
2018-09-25 10:45:26 +08:00
@simonliu2018 实际保存了不同用户的不同项目的不同信息,如果日期设为主键,是不是数据库只存一个人的了?
rust
2018-09-25 10:49:19 +08:00
@cpj 那你用 DateTIme+UserName 做主键不就行了
cpj
2018-09-25 10:50:00 +08:00
@MyPassWordis 但是我存了不同用户的信息,日期做主键那只能存一个人的了
cpj
2018-09-25 10:51:04 +08:00
@rust 傻了,是呀,谢谢 ; )
est
2018-09-25 10:59:12 +08:00
upsert {date: "2018-09-25"}, {value: "text text"}
loveCoding
2018-09-25 11:01:39 +08:00
别物理删除,改下记录状态就好,其他随便你怎么弄
toyuanx
2018-09-25 11:15:22 +08:00
MongoDB 不知道怎么弄,但是 mysql 可以把 uid+date 设置为唯一索引,然后 insert...on duplicate key update
cpj
2018-09-25 11:37:31 +08:00
@est 也可行诶
cpj
2018-09-25 11:38:10 +08:00
@toyuanx 嗯,正准备用这个方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/492270

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX