我有两个unix时间戳,一个开始时间(startDate)和一个结束时间(endDate)。使用下面的时刻函数给我一天的开始/结束:
search = {
"end": { "$lte": moment(endDate).startOf('day').unix() },
"start": {"$gte": moment(startDate).startOf('day').unix() }
};
然后我将搜索结果传递给我的buildfire函数:
buildfire.publicData.search(search ,'routes', (err, res) => {})
我的 res 是一系列对象,每个对象都有一个数据属性,其中包含开始和结束属性在里面:
res = [
{
data: {
end: 1503554370297,
start: 1503554368711
}
}
]
所有结果都在返回,没有任何内容被过滤。
答案 0 :(得分:1)
以下是docs数据存储区搜索https://github.com/BuildFire/sdk/wiki/How-to-use-Datastore#buildfiredatastoresearchoptions-tag-optional-callback
我相信您没有正确发送过滤器。
您正在发送:
search = {
"end": { "$lte": moment(endDate).startOf('day').unix() },
"start": {"$gte": moment(startDate).startOf('day').unix() }
};
buildfire.publicData.search(search ,'routes', (err, res) => {})
它应该更像是
var options = {
"filter":{
"$json.end": { "$lte": moment(endDate).startOf('day').unix() },
"$json.start": {"$gte": moment(startDate).startOf('day').unix() }
}
};
buildfire.publicData.search(search ,'routes', (err, res) => {})
基本上,由于filter
对象options
中的undefined
属性,它会返回所有内容