【问题标题】:Couchbase view results not returning with newly added documentCouchbase 视图结果未与新添加的文档一起返回
【发布时间】:2013-05-16 17:53:42
【问题描述】:

我有一个包含 5 个文档的简单数据桶,并使用 CSharp 驱动程序通过 Web 应用程序添加数据。例如:{'key':'Version', 'value': '1.0'}

当我从 UI 或 Couchbase 控制台请求返回整个列表时,我第一次没有得到所有结果,我总是在添加新文档后第二次得到结果。这是 couchbase 视图的默认行为吗?我知道它在后台使用 memcache。

如果这是默认行为,那么我该如何处理这种情况?因为每个应用程序都需要实时数据,还是我在这里做错了什么?


我刚刚注意到问题在于生产视图,上述问题仅发生在生产视图而不是开发视图中,产品视图与开发视图的工作方式不同吗?

【问题讨论】:

    标签: couchbase


    【解决方案1】:

    添加文档通常异步操作。这意味着当您的函数调用返回时(在您的语言特定的 SDK 上),文档并没有真正插入到 Couchbase 中。这更像是一个插入请求。

    我对 CSharpDriver 知之甚少,但我可以给你一个关于 Couchbase-SDK for Java 的例子。您将不得不搜索一下将以下内容映射到您的语言。一个典型的例子是:

    //Send a **request** to insert, typically spawns a new thread to poll for result.
    final OperationFuture<Boolean> setOp = m_couchbaseClient.set(sKey, 0, sValue);
    
    // More processing
    
    //Wait on insertion. Use <FutureObject>.get()
    try {
        return setOp.get().booleanValue();
        //when the above call returns we can be sure that insertion has happened/failed.
    } catch (InterruptedException e) {
    } catch (ExecutionException e) {
    }
    

    【讨论】:

    • 我刚刚注意到问题在于开发视图或生产视图,上述问题仅发生在生产视图中,产品视图与开发视图的工作方式不同吗?
    【解决方案2】:

    在视图选项中尝试“stale=false”。这里是some documentation about index updates

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多