2011-07-25 8 views
4

新しい投稿がありますが、この前の投稿が見つかりましたが、C#の JSPページのJavaコードに直接このクエリを実行しようとしましたが、何らかの理由でそれが{}の情報を受け入れません()クエリだけエラーを与える...Java MongoDBドライバを使用してフィールドのサブセットを取り出す方法は?

私はJavaでこれを行うのですかどのように覗いて、:

// retrieve ssn field for documents where last_name == 'Smith': 
db.users.find({last_name: 'Smith'}, {'ssn': 1}); 

ありがとう!

PS:どうしてC#はちょっとした.Exclude()と.Include()コマンドを持っていて、javaはしないのですか? 叫び

答えて

2

javaドライバは、シェルと全く同じAPIに従います。ただ、彼らは標準APIに違反するとして、私の知る限りでは公式のC#のドライバは()メソッドを含める公開()および除外しないfindまたはfindOne

に2つ目の引数として、あなたのフィールドの投影を含むDBObjectを渡します。

+0

DBObjectを作成しようとしましたが、たとえば次のクエリを使用したい場合は coll.find({}、{"_ id":0}); [{}] –

+0

実行している正確なJavaコードは何ですか?DBObjectを使用すると、読み取りと接続が行われるようですが、テストすると空のJSON文字列しか返されません。 –

+0

ここに問題のこの部分のコードがあります: 'Mongo m = new Mongo(" localhost "); \t \t DB db = m.getDB( "names"); \t \t DBCollection coll = db.getCollection( "names"); \t \t \t文字列jsonData = "["; \t \t int count = 0; (DBObjectを項目:coll.find())のために \t \t \t \t { \t \t \t BasicDBObjectうわ=新しいBasicDBObject()。 \t \t \t ugh.putAll(items); \t \t \t(== 0カウント)であれば{jsonData + = ugh.get( "名前")のtoString();}そう \t \t \t {jsonData + = "" + ugh.get( "名前")。 toString();;} \t \t \t count ++; \t \t} \t \t jsonData + =「]」; ' –

関連する問題