2

使用 Couchbase 4.1 我有以下文档结构

"bucketName": {
                "UserId": "user1",
                "skillSet": {
                    "punchPower": 1,
                    "kickPower": 1,
                    "specialPower": "Extreme programmer"
                },
                "id": "GameUser_XXX1D",
                "timestamp": 1464935606358
            }

我想要一个查询,它将返回我最近的时间戳和所有匹配的总数,这就是我所拥有的。

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;

正如我所期望的那样,这将返回正确数量的用户,但是返回的时间戳不正确,正在返回最旧的时间戳,就好像desc在我的查询中没有考虑一样。我试过删除和应用asc,它也返回了相同的结果。

如何解决这个不正确的查询结果

4

1 回答 1

2

我能够通过应用该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;
于 2016-07-17T23:06:10.667 回答