我正在努力让 Index by Date 与Range一起使用。
我有这个称为订单的集合:
CreateCollection({name: "orders"})
我有这些示例条目,其中一个属性称为mydate
. 如您所见,它只是一个字符串。而且我确实需要将日期创建为字符串,因为在我的数据库中,我们已经有大约 12K 记录具有这样的日期,所以我不能开始使用Date()
来创建它们。
Create(Collection("orders"), {data: {"mydate": "2020-07-10"}})
Create(Collection("orders"), {data: {"mydate": "2020-07-11"}})
Create(Collection("orders"), {data: {"mydate": "2020-07-12"}})
我创建了这个索引来计算日期和实际Date
对象
CreateIndex({
name: "orders_by_my_date",
source: [
{
collection: Collection("orders"),
fields: {
date: Query(Lambda("order", Date(Select(["data", "mydate"], Var("order"))))),
},
},
],
terms: [
{
binding: "date",
},
],
});
如果我尝试获取单个日期,则索引有效。
// this works
Paginate(
Match(Index("orders_by_my_date"), Date("2020-07-10"))
);
// ---
{
data: [Ref(Collection("orders"), "278496072502870530")]
}
但是当我尝试获取 Range 时,它永远找不到数据。
// This does NOT work :(
Paginate(
Range(Match(Index("orders_by_my_date")), Date("2020-07-09"), Date("2020-07-15"))
);
// ---
{
data: []
}
为什么索引不适用于 Range?