我想在两天之间(从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')
答案 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