我是许多可能很难过渡到 NoSQL 世界的 SQL 用户之一,我有一个场景,我的数据库中有大量条目,但我只想获取最新的条目,这很简单,但它应该全部针对同一用户。我确信这很简单,但是经过大量的尝试和错误却没有一个好的解决方案,我向你寻求帮助!
所以,我的 key 看起来像这样..(因为我认为这就是正确的方法!)
emit([doc.eventTime, doc.userId], doc);
我的问题是,我如何才能只从 CouchDB 获取最后 10 个结果?对于那个特定用户。我之所以将时间作为键,是因为我认为这是对结果进行降序排序的最简单方法,例如,我想要最后十个操作。
如果我必须在 SQL 中执行此操作,我会这样做,给您一个确切的示例。
SELECT * FROM table WHERE userId = ID ORDER BY eventTime DESC LIMIT 10
我希望有人能帮忙:-)
最佳答案
将 key 更改为:
emit([doc.userId, doc.eventTime], null);
查询方式:
view?descending=true&startkey=[<user id>,{}]&endkey=[<user id>]&limit=10
关于javascript - CouchDB 映射/归约功能可按日期显示用户的有限结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23897211/