从我的MongoDB中我想要等效于
SELECT column1, column2
FROM tbl
使用此代码,我可以获得所有“行”以及所有“列”
DBCollection collection = database.getCollection("names");
DBCursor cursor = collection.find();
例如,我想所有'行'但仅'列':id,name,age
我该怎么做?
感谢您的帮助!!
答案 0 :(得分:37)
db.collection.find({},{_ id:1,name:1,age:1})
查找的第一个参数(谓词)是您的选择标准,例如
db.collection.find({age:{$ gte:21}})
第二个限制您检索的字段,因此对于21岁或以上的所有人来说,名称都是
db.collection.find({age:{$ gte:21}},{name:1})
除非您专门将其关闭,否则字段选择器始终会拉回_id:
db.collection.find({},{_ id:0})
但是,默认情况下,Mongo不会检查字段是否存在。如果要选择某些字段,并且只匹配包含这些字段的结果,则需要使用:
db.collection.find({age:{$ exists:true}})
MongoDB网站有更详细的.find()函数说明!
答案 1 :(得分:1)
谢谢!,我用下面的代码修复了它。
BasicDBObject select = new BasicDBObject();
select.put("id", 1);
select.put("name", 1);
select.put("age", 1);
collection.find(new BasicDBObject(), select);
上面的代码为我提供了所有记录,只有上面的列名。
答案 2 :(得分:0)
如果要选择一列或多列,例如SQL查询。例如 如果您的SQL查询是这样
select name, content from knowledgebase where applicationId='2955f3e174dce55190a87ed0e133adwdeb92';
MongoDB查询:
db.knowledgebase.find({ "applicationId": "2955f3e174dce55190a87ed0e133adwdeb92"}, { "name": 1, "content": 1});