From my MongoDB I want the equivalent for
SELECT column1, column2
FROM tbl
With this code I get all the 'rows' but also all the 'columns'
DBCollection collection = database.getCollection("names");
DBCursor cursor = collection.find();
I for example would like all the 'rows' but only the 'columns': id, name, age
How would I do this?
Thanks for any help!!
db.collection.find({}, {_id: 1, name: 1, age: 1})
The first argument to find (the predicate) is your selection criteria, e.g.
db.collection.find({age: {$gte: 21}})
The second limits the fields you retrieve, so for the names over everyone 21 or older:
db.collection.find({age: {$gte: 21}}, {name: 1})
The field selector always pulls back _id unless you specifically turn it off:
db.collection.find({}, {_id: 0})
However, Mongo will not check for field existence by default. If you want to select certain fields, and match only results that have those fields, you will want to use:
db.collection.find({ age: { $exists: true } })
The MongoDB website has a more detailed description of the .find() function!
Thanks!, I fixed it with the code below.
BasicDBObject select = new BasicDBObject();
select.put("id", 1);
select.put("name", 1);
select.put("age", 1);
collection.find(new BasicDBObject(), select);
Above code gives me all the records, with only the column names as above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With