Cloudant:跨数据库搜索

时间:2015-02-13 14:45:31

标签: search cloudant

我有2个不同数据库的文件:水果,蔬菜。我更容易将数据库分开。

现在,假设我希望我的用户从这些数据库的任意组合中进行搜索。如果我跨三个数据库运行相同的查询,并合并结果,它会工作吗?那就是:结果中的order字段是否具有绝对值,还是相对于其他结果?例如:

在fruit db上运行我的查询:

{
  total_rows: 2,
  bookmark: "xxx",
rows: [
{
  id: "Apple",
  order: [
    2,
    220
  ],
  fields: {
    title: "Apple"
  }
},
{
  id: "pear",
  order: [
    1,
    4223
  ],
  fields: {
    title: "Pear"
  }
}
}

在蔬菜数据库上运行我的查询:

{
  total_rows: 1,
  bookmark: "xxx",
rows: [
{
  id: "brocolli",
  order: [
    1.5,
    3000
  ],
  fields: {
    title: "Brocolli"
  }
}
}

然后将结果合在一起产生

{
  total_rows: 2,
  bookmark: "xxx",
rows: [
{
  id: "Apple",
  order: [
    2,
    220
  ],
  fields: {
    title: "Apple"
  }
},
{
  id: "brocolli",
  order: [
    1.5,
    3000
  ],
  fields: {
    title: "Brocolli"
  }
},
{
  id: "pear",
  order: [
    1,
    4223
  ],
  fields: {
    title: "Pear"
  }
}
}

这会有用吗?或者只创建一个foods数据库更好?

1 个答案:

答案 0 :(得分:1)

使用CouchDB或Cloudant无法跨数据库执行连接。您需要:

  • 将您的所有数据放在一个数据库中并查询
  • 具有单独的数据库,并将数据从每个数据库复制到单个数据库并查询
  • 具有单独的数据库并在您的应用程序层中执行连接功能

我已将此问题添加到:How can I use my sql knowledge with Cloudant/CouchDB?