Couchbase 查询未按预期工作
Couchbase Query not working as expected
使用 Couchbase 4.1 我有以下文档结构
"bucketName": {
"UserId": "user1",
"skillSet": {
"punchPower": 1,
"kickPower": 1,
"specialPower": "Extreme programmer"
},
"id": "GameUser_XXX1D",
"timestamp": 1464935606358
}
我想要一个查询,它将 return 我返回最近的时间戳和所有匹配项的总数,这就是我所拥有的。
select count(timestamp) as users, timestamp from bucketName where id like 'GameUser__%' AND
skillSet.specialPower = 'Extreme Programmer' AND
skillSet.kickPower = 1 AND
skillSet.punchPower = 1 AND
timestamp BETWEEN $sometimeIPassHere AND $sometimeIPassHere
ORDER BY timestamp desc limit 1;
这 returns 返回正确的用户数量,正如我预期的那样,但是正在 returned 的时间戳不正确最旧的时间戳正在 returned 就好像 desc
在我的查询中没有被考虑。我试过删除并应用 asc
,这也 return 得到了相同的结果。
如何解决这个不正确的查询结果
我能够通过应用 max()
方法来实现它。
select max(timestamp), count(timestamp) as users, timestamp from bucketName where id like 'GameUser__%' AND
skillSet.specialPower = 'Extreme Programmer' AND
skillSet.kickPower = 1 AND
skillSet.punchPower = 1 AND
timestamp BETWEEN $sometimeIPassHere AND $sometimeIPassHere
ORDER BY timestamp desc limit 1;
使用 Couchbase 4.1 我有以下文档结构
"bucketName": {
"UserId": "user1",
"skillSet": {
"punchPower": 1,
"kickPower": 1,
"specialPower": "Extreme programmer"
},
"id": "GameUser_XXX1D",
"timestamp": 1464935606358
}
我想要一个查询,它将 return 我返回最近的时间戳和所有匹配项的总数,这就是我所拥有的。
select count(timestamp) as users, timestamp from bucketName where id like 'GameUser__%' AND
skillSet.specialPower = 'Extreme Programmer' AND
skillSet.kickPower = 1 AND
skillSet.punchPower = 1 AND
timestamp BETWEEN $sometimeIPassHere AND $sometimeIPassHere
ORDER BY timestamp desc limit 1;
这 returns 返回正确的用户数量,正如我预期的那样,但是正在 returned 的时间戳不正确最旧的时间戳正在 returned 就好像 desc
在我的查询中没有被考虑。我试过删除并应用 asc
,这也 return 得到了相同的结果。
如何解决这个不正确的查询结果
我能够通过应用 max()
方法来实现它。
select max(timestamp), count(timestamp) as users, timestamp from bucketName where id like 'GameUser__%' AND
skillSet.specialPower = 'Extreme Programmer' AND
skillSet.kickPower = 1 AND
skillSet.punchPower = 1 AND
timestamp BETWEEN $sometimeIPassHere AND $sometimeIPassHere
ORDER BY timestamp desc limit 1;