2013-12-10 68 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()更快。