2

以下是我在 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}
]

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

4

1 回答 1

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.计算字段

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 初学者。

谢谢

于 2013-10-12T06:13:27.247 回答