2016-04-01 7 views
0

"timestamp"というテーブルが "posts"あります。以前のクエリのRethinkdbフィルタ

今私は1つ以上の投稿を持っているすべてのユーザーから、最新の投稿を除いてすべての投稿を取得したいと思います。私は成功した1件の記事が複数あるユーザーが確認することができ、このクエリでは

を私は今、私がする必要がある

r.table("post") 
.filter({userId: 'xxx'}) 
.max('timestamp') 

を行うことによって、特定のユーザーの最後のポストを得ることができますそれらを何らかの形で結びつけ、各行のタイムスタンプをmax( 'タイムスタンプ')と比較して、それらが等しくないかどうかを確認します。以下は私が持っていたものですが、明らかに間違っています

.filter(r.row('timestamp').ne(r.row('timestamp').max('timestamp')('timestamp'))) 

私はこれをどのようにまとめていますか?

答えて

1

このような何かが動作するはず:

r.table('post') 
.group({ 
    index: 'userId' 
}) 
.ungroup() 
.filter(function(doc) { 
    return doc('reduction').count().gt(1) 
}) 
.group('group')('reduction') 
.nth(0) 
.orderBy(
    r.desc('timestamp') 
).skip(1) 

構文エラーのために予約して、私はpythonを使用してこのクエリを構築し、それをjavascriptに変換しました。 .nth(0)の部分について特に不明な点は、javascriptでは一度も使用していません。 Pythonでは、それはちょうど[0]です。

関連する問題