Couchbase N1QL两天之间没有时间查询数据

时间:2017-11-23 08:12:45

标签: couchbase n1ql

我想在两天之间(从00:00:00.000开始日期时间到23:59:59.999结束日期时间)从具有N1QL的Couchbase存储桶中检索数据

提供没有时间的日期就足够了,就像这样:

SELECT c.*
FROM customer c
WHERE c.start BETWEEN '2017-10-09' AND '2017-10-10'

或者我是否需要明确提供时间:

SELECT c.*
FROM customer c
WHERE c.start BETWEEN '2017-10-09T00:00:00.000Z' AND '2017-10-10T23:59:59.999Z')

2 个答案:

答案 0 :(得分:0)

您需要使用带有map函数的视图,将日期转换为Array,如下所示:

function (doc, meta) {
    emit(dateToArray(doc.start), doc);
} 

然后使用the startKey and endKey filter

请求视图

使用NodeJS客户端使用the range method

const viewQuery = couchbase.ViewQuery.from(nameOfYourDesignDocument, nameOfYourView);

bucket.query(viewQuery.range([2017,10,9], [2017,10,10]), (error, rows) => {
});

答案 1 :(得分:0)

ISO-8601中的Couchbase日期与字符串相当。两个查询都没问题。详细了解https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/datefun.html