2015-11-23 49 views

回答

2

如果你想要最後的n,我會寫obj.coerceTo('array').slice(-n).coerceTo('object')。 (RethinkDB中的對象通過鍵隱式排序它們的字段。)如果你想要第一個n,我會寫.slice(0, n)而不是.slice(-n)

0

像這樣的東西應該工作

r.object(r.args(

    a_single_object_return_from_a_reql_or_an_r_dot_expr 
    .do(function(doc) { 

    return 
     doc.keys().slice(0, THE_NUMBER_OF_KEY) 
     .concatMap(function(k) { 
      return [k, doc(k)] 
     }) 

    }) 

)) 

假設我有一個ID這個文件表S1是:65e1546a-f23f-4fe6-9cd7-4ba580770123

{ 
"created_at": "2013-10-13 00:58:11" , 
"id": "65e1546a-f23f-4fe6-9cd7-4ba580770123" , 
"id_tweet": "389193311908413440" , 
"id_user": 12375562 , 
"name": "elgabo1" , 
"photo": https://pbs.twimg.com/profile_images/1827710728/45d1be6d2e0f1c710814e098d6f56c12_normal.png, » 
"screen_name": "elgabo1" , 
"status_tweet": 1 , 
"text": "@profeco Deurope Gran Sur tapa los sellos de suspensión con propaganda" 
} 

應用上面的查詢,我可以寫這樣的某物拿到第5鍵,返回對象:

r.object(r.args(

    r.table('s1').get('65e1546a-f23f-4fe6-9cd7-4ba580770123') 
    .do(function(doc) { 

    return 
     doc.keys().slice(0, 5) 
     .concatMap(function(k) { 
      return [k, doc(k)] 
     }) 

    }) 

)) 

結果:

{ 
"created_at": "2013-10-13 00:58:11" , 
"id": "65e1546a-f23f-4fe6-9cd7-4ba580770123" , 
"id_tweet": "389193311908413440" , 
"id_user": 12375562 , 
"name": "elgabo1" 
}