如何找出最大或最新日期?如何创建计算字段?如何删除字段? - Rethinkdb

时间:2013-10-12 06:06:31

标签: rethinkdb

以下是我在github.com/rethinkdb问题上提出的问题。 我在这里发布了rethinkdb社区的好处

1.如何根据以下数据过滤最大日期:

[   
{"TimeStamp": Fri Oct 11 2013 05:51:12 GMT+00:00},
{"TimeStamp": Thu Oct 10 2013 15:41:09 GMT+00:00},
{"TimeStamp": Thu Oct 10 2013 15:44:04 GMT+00:00}
]

2.如何创建计算字段?我在rethinkdb中有这样的数据

[
{id: 1, sales: 1000, discount: 0.1},
{id: 2, sales: 2000, discount: 0.2},
{id: 3, sales:3000, discount: 0.1}
]

我如何将其转换如下:

[{id: 1, sales: 1000, discount: 0.1, discAmt: 100, netSales: 900},
{id: 2, sales: 2000, discount: 0.2, discAmt: 400, netSales: 1600},
{id: 3, sales: 3000, discount: 0.1, discAmt: 300, netSales: 2700}
]

如何从上面删除折扣字段?

1 个答案:

答案 0 :(得分:6)

<强> 1。最长日期

对于最大时间戳,如果您只想检索上一个时间戳,则可以执行

r.table("foo").map( r.row("TimeStamp") ).reduce( function(left, right) {
   return r.branch( left.gt(right),
    left,
    right
})

如果您想要时间戳最大的文档,可以

r.table("foo").orderBy(r.desc("TimeStamp")).limit(1)

这将对整个表进行排序,因此您可能希望在TimeStamp上创建索引并使用

r.table("foo").orderBy({index: "TimeStamp"}).limit(1)

2.Calculated fields

r.db("books").table("sales").update( function(row){ 
  var discAmt = row("sales").mul(row("discount")); 
    return {
    discAmt: discAmt,
    netSales: row("sales").sub(discAmt)
 }
})
.run()

3.删除字段

 r.db("books").table("sales").replace( function(row) {
     return row.unpick("discount");
 })
 .run()

我希望这会对像我这样的rethinkdb启动器有所帮助。

由于