2012-03-01 12 views
2

ビューの作成に手伝ってください。以下は要求事項ですCouchdbビューのクエリ

名前とユーザーをビューに入力する必要があり、データをlastloggedinでソートする必要があります。以下は

私が作成した図であるが、それは

{ 
    "language": "javascript", 
    "views": { 
     "sortdatetimefunc": { 
      "map": "function(doc) { 
       emit({ 
        lastloggedin: doc.lastloggedin, 
        name:   doc.name, 
        user:   doc.user 
       },doc); 
      }" 
     } 
    } 
} 

そして、これを作業curlコマンドのIAM使用していません。

http://uta:[email protected]:5984/personaccount/_design/checkdatesorting/_view/sortdatetimefunc?key={\"name:srini\",\"user:pup\"} 

並べ替えが行われるように私の質問は

です私はそれをemit関数にも与えています。

しかし、iamは名前とユーザーのみをパラメーターとして渡します。私たちがキーに与えるすべてのパラメータを渡す必要がありますか?


まず最初に私は返信のためにあなたに伝えたいと思います。私は同じことをやっていて、間違いをしています。

{ 
    "_id": "_design/persondestwo", 
    "_rev": "1-0d3b4857b8e6c9e47cc9af771c433571", 
    "language": "javascript", 
    "views": { 
     "personviewtwo": { 
      "map": "function (doc) {\u000a emit([ doc.Name, doc.Idnum, doc.lastTimeOfCall ], null);\u000a}" 
     } 
    } 
} 


I have fired this command from curl command : 

curl -X GET http://uta:[email protected]:5984/person-data/_design/persondestwo/_view/personviewtwo?startkey=["SRINI","383896"]&endkey=["SRINI","383896",{}]descending=true&include_docs=true 

私はこのエラーを得た:

は、あなたのPC上でこれを試してみてくださいでし助けてください、IAMの投稿すべてのコマンド:あなたは、私が作成したとして

curl -X PUT http://uta:[email protected]:5984/person-data 

curl -X PUT http://uta:[email protected]:5984/person-data/srini -d '{"Name":"SRINI", "Idnum":"383896", "Format":"NTSC", "Studio":"Disney", "Year":"2009", "Rating":"PG", "lastTimeOfCall": "2012-02-08T19:44:37+0100"}' 

curl -X PUT http://uta:[email protected]:5984/person-data/raju -d '{"Name":"RAJU", "Idnum":"456787", "Format":"FAT", "Studio":"VFX", "Year":"2010", "Rating":"PG", "lastTimeOfCall": "2012-02-08T19:50:37+0100"}' 

curl -X PUT http://uta:[email protected]:5984/person-data/vihar -d '{"Name":"BALA", "Idnum":"567876", "Format":"FAT32", "Studio":"YELL", "Year":"2011", "Rating":"PG", "lastTimeOfCall": "2012-02-08T19:55:37+0100"}' 

ここでビューです

[4] 3000 
curl: (3) [globbing] error: bad range specification after pos 99 
[5] 1776 
[6] 2736 
[3] Done     descending=true 
[4] Done(3)     curl -X GET http://uta:[email protected]:5984/person-data/_design/persondestwo/_view/personviewtwo?startkey=["SRINI","383896"] 
[5] Done     endkey=["SRINI","383896"] 

このエラーの原因を知りません。

私はまた、以下の方法でパラメータを渡すと、それは
curl -X GET http://uta:[email protected]:5984/person-data/_design/persondestwo/_view/personviewtwo?key={\"Name\":\"SRINI\",\"Idnum\": \"383896\"}&descending=true 

を支援されていません。しかし、私は

は全体的に私はちょうどこのクエリは、ビューを介して満足したいエスケープシーケンスで別のエラーを取得しようとした

select * from person-data where Name="SRINI" and Idnum="383896" orderby lastTimeOfCall 

上記のようにすれば、多くのエラーが発生するため、curlコマンドから複数のパラメータを渡す方法があります。

答えて

1

まず、キーを配列として使用する必要があります。私は次のように使用します:

function (doc) { 
    emit([ doc.name, doc.user, doc.lastLoggedIn ], null); 
} 

これは基本的にすべての文書を名前順に並べた後、userとlastLoggedInの順に出力します。次のURLを使用して照会することができます。

/_design/checkdatesorting/_view/sortdatetimefunc?startkey=["srini","pup"]&endkey=["srini","pup",{}]&include_docs=true 

第2に、クエリの値としてdocを出力しなかったことに注意してください。特に文書がかなり大きい場合は、ディスク容量が大幅に増えます。ちょうどinclude_docs=trueを使用してください。

最後に、CouchDB Wikiを参照してください。かなり役に立ちます。

+0

こんにちはドミニク、私は返事をあなたに感謝を伝えたいまず第一に、私は同じことを行っていると私はエラーを取得します – user1242003

1

私はちょうどこの質問につまずいた。あなたが取得しているエラーは、このコマンドをエスケープしないことによって引き起こされる:

curl -X GET http://uta:[email protected]:5984/person-data/_design/persondestwo/_view/personviewtwo?startkey=["SRINI","383896"]&endkey=["SRINI","383896",{}]descending=true&include_docs=true 

&文字は、コマンドライン上で特別な意味を持っており、エスケープする必要があるとき、実際のパラメータの一部。 だからあなたは大きなURLを引用符で囲み、その内部に引用符エスケープする必要があります

curl -X GET "http://uta:[email protected]:5984/person-data/_design/persondestwo/_view/personviewtwo?startkey=[\"SRINI\",\"383896\"]&endkey=[\"SRINI\",\"383896\",{}]descending=true&include_docs=true" 
関連する問題