【发布时间】:2019-12-15 10:44:58
【问题描述】:
我想在 cloudant 分区数据库(描述为 here)中使用只写(不可变)文档策略,其中对于每次文档更新,我都会创建一个包含更新字段的新文档。例如:数据库由订单组成(带有字段 order_id、details、time_of_doc_creation)。假设需要更新某个订单的详细信息 - 我创建一个包含更新数据并保留 order_id 的新文档。现在在某个时间点,我想查看系统中的所有订单,如果存在 order_id 相同的文档,那么只有日期最晚的文档才会出现在列表中。
我能想到的唯一方法是从数据库中提取所有文档,然后在客户端自己进行过滤,但是我可以在数据库本身中使用一些东西来获得这样的结果吗?
db中的订单列表:
{
order_id:1,
details:"old",
time:"1"
},
{
order_id:2,
details:"old",
time:"2"
},
{
order_id:1,
details:"new",
time:"3"
},
{
order_id:2,
details:"new",
time:"4"
}
期望的输出:给我系统中所有的订单文件,所以db输出应该是这样的->
{
order_id:1,
details:"new",
time:"3"
},
{
order_id:2,
details:"new",
time:"4"
}
【问题讨论】: