【问题标题】:Couchbase queries using composite keys in F#在 F# 中使用复合键的 Couchbase 查询
【发布时间】:2013-05-18 04:27:12
【问题描述】:

如何翻译以下复合键查询:

?stale=false&connection_timeout=60000&limit=10&skip=0&startkey=["Default",{}]&endkey=["Default"]&descending=true

使用 F# 时转至 couchbase .net api。我在这里找到了类似的使用 C# LINQ Couchbase .Net Library complex startKey/endKey types,但是我怎样才能使用 F# 完成相同的操作?

缺少的部分是???

let result = myView.Descending(true).Stale(StaleMode.False).Limit(limit).StartKey( ??? ).EndKey( ??? )

任何帮助将不胜感激。

【问题讨论】:

    标签: f# couchbase


    【解决方案1】:

    您似乎在询问如何在 F# 中创建数组。要在 F# 中声明对象数组,请执行以下操作:

    let (startKey: Object array) = [|35; 23; new Object()|]
    let (endKey: Object array) = [|35; 23|]
    

    请注意,通常不需要类型说明,但由于您在数组中混合类型,编译器将假定数组中第一个对象的类型 (int),因此 new Object() 会导致编译错误。添加类型规范可解决该问题。

    let result = myView.Descending(true).Stale(StaleMode.False).Limit(limit).StartKey( startKey ).EndKey( endKey )
    

    【讨论】:

    • 你几乎是正确的。 “{}”实际上将序列化为 json 字符串,而不是作为只是 {} 的空对象。匹配查询的正确方法是: [|"Default"; new Object()|] 我不知道数组的类型规范,谢谢。请修改答案,我会这样标记。
    • 我实际上只是从您链接的另一个问题中窃取了数组。不过很高兴将其更改为Object
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    相关资源
    最近更新 更多