2013-12-10 102 views
0

我正在評估RethinkDB作爲lack of stable Mongo drivers on Node的Mongo替代品。我已閱讀http://www.rethinkdb.com/api/javascript/get_all/的文檔,並有一個非常簡單的問題:如何通過鍵值對獲取文檔?RethinkDB:​​通過鍵值對獲取文檔?

get()的例子只討論索引。我對這個指數並不感興趣,而是對其他領域感興趣。例如,我希望能夠這樣做:

.get({someField:SomeValue}) 

...以我習以爲常的方式處理Mongo上的collection.find()。但這似乎不可能。我究竟做錯了什麼?以這種方式獲取文檔不被視爲獲取?

我應該用.filter()代替嗎?

+1

不知道爲什麼你將它標記爲MongoDB,它是關於從rethinkdb中獲取內容 – Sammaye

+1

我再次不確定爲什麼你認爲MOngoDB標記上的任何人都知道? – Sammaye

+0

我認爲downvote不是來自他們,我認爲downvote是你提出一個非常基本的問題,顯然是別人認爲是如此基礎,你沒有打擾研究。對非常投票的許多缺點之一。我的評論上的讚譽存在很久之前downvote – Sammaye

回答

4

它看起來像Rethink's .filter是適當的相當於Mongo的find()。

+0

這是正確的。 RethinkDB中的'get'保留用於使用索引訪問文檔。 「過濾器」用於線性掃描,這是你在這裏做的。 –

0

那個場合,你也可以使用getAll()。 但首先,您必須設置索引的字段。

r.db('test').table('testtable').indexCreate('someField') 

然後,您可以通過關注獲得結果流。

r.db('test').table('testtable').getAll('SomeValue', {index :'someField'}); 

它比filter()更快。