2016-07-13 2 views
1

の条件が私のデータベーススキーマです実行します。ここでCouchDBの

Database name: user 
_id 74acd65e6eeb6d55809a950036000f50 
_rev 1-f5ca343d0688d7a01b549e5c29a4a911 
Budget dsds 
user_Id abc123 
Name ssdsd 

今、私が欲しいものGWTを使って"user_Id":"ssdsd"を持っているすべてのレコードを取得することです。 MySQLで同様

select * from user where user_Id=ssdsd

残念ながら、私はGWTに慣れていないんだけど、私はあなたの質問は、よりCouchDBの関係だと思います次のコード

public String view(String user_id) throws IllegalArgumentException { 
     // TODO Auto-generated method stub 
     Session s1=new Session("127.0.0.1",5984); 
     Database db=s1.getDatabase("users"); 
     return ""; 

答えて

1

に私を導いてください。

ユーザーごとに1つのドキュメントを作成する予定がある場合は、user_Idを_idとして直接使用する必要があります。このようにして、CouchDbの「プライマリ」インデックスを利用する利点を得て、一意のユーザーIDを同時に適用することができます。 typeプロパティで文書の種類も保存することが推奨されています。 文書では、次のようになります。

{ 
    "_id": "user.abc123", 
    "type": "user", 
    "name": "ssdsd", 
    "budget": "dsds" 
} 

あなたがUSER_IDごとに複数のドキュメントを持つ必要がある場合、あなたはCouchDBのビューを作成する必要があります。あなたはCouchDB Docsの紹介を読むことができます。

これはCouchDBのマップ機能のためのいくつかの簡単なJavaScriptコードのようになります。

function (doc) { 
    if (doc.user_Id) { 
    emit(doc.user_id, {budget: doc.budget}); 
    } 
} 

あなたはその後、例えば、"abc123"keyでビューを呼び出すことで、このビューを照会することができるだろうこのURLを呼び出すことによって、ブラウザで:

http://localhost:5984/users/_design/users/_view/users?key=[「ABC123" ]

PS:あなたはまた、認証が必要な場合は、組み込みのデータベース_usersにユーザーを格納するために検討する価値があるかもしれませんただ、覚えておいてください。このシステムにはいくつかの制限があります。db:非管理者はこのデータベース内の他のユーザーのドキュメントを読み取ることができず、そこにドキュメントを追加するときに特別なスキーマ要件を満たす必要があります。

関連する問題