java - Couchbase 获取给定日期范围内的文档

标签 java couchbase

这是我存储桶中的文档结构。

 {
  "_class": "com.link.pojo.Event",
  "year": "2015",
  "start": 1440115200000,
  "name": "129811",
  "domain": "5000$3$2015$Exhibition",
  "sporttype": "Indoor",
  "eventtype": "Exhibition",
  "end": 1440151199000,
}

这里的start是指事件开始日期,类型是util Date。日期格式值示例为 2015-08-10T09:45:00.000+0000 现在我想使用 couchbase View 获取当前日期开始的所有文档。这就是我想要得到它的方式,什么是

// Create the CouchbaseClient Query object & Pass the time range to fetch events.
Query query = new Query();
// Filter on the start date and this value has to be within below given range params.
query.setIncludeDocs(true);
query.setDescending(true);
query.setInclusiveEnd(true);
query.setRange(ComplexKey.of(""), ComplexKey.of(""));
List<Event> eventList = `eventService.getEventsByCurrentDate(query);`

我应该在 query.setRange(); 函数中传递哪些值。我需要实现什么 View ?

function (doc, meta) {
  if (doc._class == "com.link.pojo.Event") {
    emit(doc.start, null);
  }
}

最佳答案

你做错了:]

查询只是过滤 View 某些结果的一种方法。因此,首先定义一个 View - 然后计算出您需要使用哪个查询来获取您所需要的内容。

  1. 首先在 Couchbase UI 中创建 View 。

  2. 然后查看 View 的结果 - 再次使用 couchbase UI。应该有一个链接,您可以单击该链接以在浏览器的新选项卡中查看 View 结果。

  3. 然后您可以编辑网址来“查询” View 的结果。添加“&key=123 即可获取该键。SetRange 的意思只是 - “获取该数字范围内的键”。

  4. 在您的情况下,由于您的 View 发出“开始”字段,因此您的键(或范围)必须采用相同格式。所以类似 &key=1440115200000

我希望这会有所帮助。

关于java - Couchbase 获取给定日期范围内的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32260836/

相关文章:

Couchbase - 在哪里下载啤酒样本桶文件?

couchbase - 检测沙发底座的锁定释放?

docker - docker上的couchbase配置

c# - 如何像在 NoSQL 中那样实现 select ...?

windows - 具有所有 Windows 依赖项的 couchDB 完整包

java - 当包含在 GridBagLayout 中时,如何使我的面板换行文本并增加高度而不是宽度?

java - Android中如何淡出滑动层的背景

java - 无法注册 servlet

java - Android:抽屉导航 NullPointerException

java - 程序在Eclipse中运行,不在命令行中运行