2017-01-15 14 views
0

Rest APIを使用してcouchbaseライトビューを更新するにはどうすればよいですか?Rest APIを使用してcouchbaseライトビューを更新するにはどうすればよいですか?

Rest APIから、ビューが更新されることをインデクサーに伝える方法。私は以下のコードを試してみましたが、動作しませんでした。それでも古いインデックスを返します。

インデックスを再作成できるようにビューが更新されることを、インデクサーに伝える正しい方法は何ですか。

'PUT' 
    {db}/_design/todo 
      { 
"_rev":"hf675757577hhfh", 
     "views":{ 
    "list":{ 
    "map":function(doc){ 
    if(doc.type=='list') 
    { 
    emit(doc._id,{"name":doc.name}); 
    } 
    }, 
    //"version":"1.0" (I have tryied this but not work) 
    } 

    } 

      } 

//My view create request was like below: 


    {db}/_design/todo 
      { 

     "views":{ 
    "list":{ 
    "map":function(doc){ 
    if(doc.type=='list') 
    { 
    emit(doc._id,{"name":doc.name}); 
    } 
    }, 
    //"version":"1.0" (I have tryied this but not work) 
    } 

    } 

      } 
+0

これはREST API経由で作成したビューですか?そうでない場合は、残りのAPI経由で更新することはできません。 – borrrden

+0

yaa前にビューリストを作成しました –

+0

どのように作成しましたか?最初のPUTリクエスト経由ですか?そこにネイティブに登録されたビューがある場合、これは変更されません。それ以外の場合は、ネイティブビューがまったくない場合、各PUTは、バージョンがソースのハッシュに基づいているため、ビューのインデックスを再作成させる必要があります。これはどのプラットフォームで実行されていますか? – borrrden

答えて

0

フォーマットに問題があるようです。これは、コマンドラインからしようとしている何をする方法を示しています。

curl -X PUT 'http://localhost:4985/db/_design/todo' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "_rev": "hf675757577hhfh", "views": { "list": { "map": "function(doc) { if (doc.type == \"list\") { emit(doc._id, { \"name\": doc.name }); }}"}}}' 

あなたは、このコマンドを使用して結果をテストすることができます

curl -X GET 'http://localhost:4985/db/_design/todo/_view/list' 

あなたはより多くを持っているマニュアルを参照してくださいすることができます例:https://developer.couchbase.com/documentation/mobile/current/guides/sync-gateway/views/index.html

関連する問題