2

考虑一个 JSON 对象,例如:

{
  name: 'ben',
  employer: 'The Sherwin-Williams Company',
  emails: ['ben@gmail.com', 'ben@sherwin-williams.com']
}

在 MongoDB 中,您可以索引 emails 字段,以便您可以找到任何带有“ben@gmail.com”的对象作为电子邮件。这在 Riak 中可能吗?我无法通过阅读文档来判断。

4

1 回答 1

2

你当然可以,但你必须手动输入索引条目。

这是 Ruby 中的一个示例:

require 'riak'

client = Riak::Client.new(:protocol => "pbc", :host => "127.0.0.1", :pb_port => 10047, :http_port => 10048)

ben = client['people'].get_or_new('ben')

ben.data = { :name => "ben", 
             :employer => "The Sherwin-Williams Company",
             :emails => ['ben@gmail.com', 'ben@sherwin-williams.com'] }

ben.indexes['email_bin'] << "ben@gmail.com"
ben.indexes['email_bin'] << "ben@sherwin-williams.com"

ben.store

现在您可以通过 ruby​​ 库或通过您的网络浏览器在以下位置查找它http://127.0.0.1:10018/buckets/people/index/email_bin/ben@gmail.com

在我的系统上返回: {"keys":["ben"]}

我知道 Java 和 Ruby Riak 库支持添加/编辑索引条目,但我将不得不检查其他库并回复您。

于 2013-04-04T23:42:14.610 回答