I am trying to use the select operator in mongoose to select certain fields for the following object:
{
"_id" : ObjectId("5249bb97a5de48bda3000003"),
"id": 1,
"geometry" : {
"coordinates" : [
1,
1
],
"type" : "Point"
},
"properties" : {
"TYPE" : "Some Type",
"TIMESTAMP": ......
},
"type" : "Feature"
}
I would like to mongo to return only the 'properties.TYPE' and properties.TIMESTAMP fields. I can do this in mongo with the following query:
db.features.find({id: 1}, {'properties.TYPE': 1, 'properties.TIMESTAMP': 1})
I am trying to use the select statement in mongoose to do the same thing: var fields = { properties: { OBJECTID: 1, TIMESTAMP: 1 } } var query = Feature.find({id: 1}).select(fields);
Mongo throws an error when trying to do that so I am not sure mongoose is formatting a nested fields object correctly.
Is this the proper way to do this?
You can use the same dot notation style in the select
object with Mongoose as you do in your find
example:
var fields = { 'properties.OBJECTID': 1, 'properties.TIMESTAMP': 1 };
var query = Feature.find({id: 1}).select(fields);
You can also use a Mongoose style selection string:
var query = Feature.find({id: 1})
.select('properties.OBJECTID properties.TIMESTAMP');
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