Couchbase .NET SDK GetView возвращает пустой результат при первом вызове

# creating the view
var designDocContents =
@"{
    ""views"" : {
        ""all_docs"" : {
            ""map"" : ""function (doc, meta) {\n  emit(doc.name, [doc.version, doc.type, doc.date]);\n }""
        }
    }
}";
var result = _cluster.CreateDesignDocument(_bucketName, "dev_all_docs", designDocContents);

Из моего окна Visual Studio Immediate во время отладки:

# trying to get the created view and read values from it
couchbaseClient.GetView("dev_all_docs", "all_docs").GetEnumerator().MoveNext();
    false
couchbaseClient.GetView("dev_all_docs", "all_docs").GetEnumerator().MoveNext();
    true

Как видите, одна и та же строка кода (couchbaseClient.GetView...) возвращает false при первом вызове и true при втором вызове. Я пытался добавить сон после создания представления, но это не помогло, так что проблема не во времени.

Я нашел вопрос, который казался несколько связанным: Couchbase .Net клиентская библиотека GetView проблема кэширования Но следующее изменение ответа на вопросы также не помогло:

couchbaseClient.GetView("dev_all_docs", "all_docs").Stale(StaleMode.False);

person the_jov    schedule 02.07.2014    source источник


Ответы (1)


Я понял. Проблема была устранена путем переключения с режима разработки на рабочий режим. Ключевым моментом было более внимательное изучение документации представления Couchbase. http://docs.couchbase.com/couchbase-manual-2.2/#development-and-production-views

Я изменил код на следующий:

# creating the view
var designDocContents =
@"{
    ""views"" : {
        ""all_docs"" : {
            ""map"" : ""function (doc, meta) {\n  emit(doc.name, [doc.version, doc.type, doc.date]);\n }""
        }
    }
}";
var result = _cluster.CreateDesignDocument(_bucketName, "all_docs", designDocContents);

И в непосредственном окне Visual Studio:

couchbaseClient.GetView("all_docs", "all_docs").GetEnumerator().MoveNext();
true

Таким образом, в коде удаление префикса «dev_» из имени представления помогло.

person the_jov    schedule 03.07.2014