2016-07-17 6 views
2

を働いていない私は、次の文書構造Couchbaseのクエリは、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を適用しています。

私はmax()法を適用することによって、この作業を取得することができました。この間違ったクエリ結果

答えて

2

を解決するにはどうすればよいです。

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; 
関連する問題