私のMongoDBから私は同等のものが欲しい
SELECT column1, column2
FROM tbl
このコードを使用すると、すべての「行」だけでなくすべての「列」も取得されます
DBCollection collection = database.getCollection("names");
DBCursor cursor = collection.find();
たとえば、all '行'が必要ですが、のみ '列':id、name、age
どうすればよいですか?
助けてくれてありがとう!
db.collection.find({}、{_ id:1、名前:1、年齢:1})
見つけるための最初の引数(述語)は、選択基準です。
db.collection.find({年齢:{$ gte:21}})
2つ目は、取得するフィールドを制限するため、21歳以上の全員の名前の場合:
db.collection.find({年齢:{$ gte:21}}、{名前:1})
特にオフにしない限り、フィールドセレクタは常に_idをプルバックします。
db.collection.find({}、{_ id:0})
ただし、Mongoはデフォルトではフィールドの存在をチェックしません。特定のフィールドを選択し、それらのフィールドを持つ結果のみを照合する場合は、次を使用します。
db.collection.find({age:{$ exists:true}})
MongoDB Webサイトには、.find()関数の詳細な説明があります。
ありがとう!、以下のコードで修正しました。
BasicDBObject select = new BasicDBObject();
select.put("id", 1);
select.put("name", 1);
select.put("age", 1);
collection.find(new BasicDBObject(), select);
上記のコードは、上記の列名のみを含むすべてのレコードを提供します。
SQLクエリのように1つまたは複数の列を選択する場合。たとえば、SQLクエリが次のようになっている場合
select name, content from knowledgebase where applicationId='2955f3e174dce55190a87ed0e133adwdeb92';
MongoDBクエリ:
db.knowledgebase.find({ "applicationId": "2955f3e174dce55190a87ed0e133adwdeb92"}, { "name": 1, "content": 1});