我正在使用Couchbase v4.5和.NET SDK 2.3.8版。我正在将视图迁移到N1QL查询中。可用于视图的Javascirpt为我提供了对文档的数组成员进行排序的灵活性,并随后从数组中选择了单个元素。因此,尽管在我看来我有:选择特定数组元素
'Username': doc.Document.LogActions.sort(function(a,b){ return (a.Time > b.Time) })[doc.Document.LogActions.length - 1].Username
...我现在正努力通过在N1QL查询中的.NET SDK来完成相同的操作。需要注意的是,我正试图在LINQ中完成此操作。我意识到我可以使用原始字符串查询,它提供了完整的N1QL支持,但团队负责人希望通过LINQ完成此操作......除非绝对没有办法通过LINQ来完成。
我已经试过如下:
排序 - 不允许在数组中的对象上由一个属性进行排序
Username = doc.Document.LogActions
.OrderByDescending(logAction => logAction.Time)
.FirstOrDefault()
.Username,
就拿刚刚过去的 - 最后不支持
Username = transaction.Document.LogActions
.LastOrDefault()
.Username,
不分拣 - Stil升返回数组
Username = transaction.Document
.LogActions[transaction.Document.LogActions.Count - 1]
.Username
我能想到做的仅仅是返回数组回到.NET和做过滤有唯一的其他东西。但是,我们没有平均数量为多少个项目的基线。我们宁愿避免带回我们不需要的数据。
我有没有使用原始字符串查询?理想情况下,我试图根据Time
属性从数组中找到最近的“日志操作”。