How to find document by Object Id in atlas function.
try {
// Execute a FindOne in MongoDB
let id = query.city_id;
let o_id = new BSON.ObjectId(query.city_id)
findResult = await collection.find({ "_id": o_id });
} catch(err) {
console.log("Error occurred while executing findOne:", err.message);
return { error: err.message };
}
I am getting state id in query and I want to get matching city, with other key I am getting state but with object id I am not getting any state
Hi,
Three quick thoughts looking at your function:
- Is your function defined as an “async” function? If not, then using await is not supported. See here for a sample: https://www.mongodb.com/docs/atlas/app-services/functions/mongodb/
- What is the “type” of query.city_id? Is it already an ObjectId? If so, there is no need to wrap it in an ObjectId()
- You can switch from using Find() (which returns a cursor since there might be multiple results), to a FindOne() (which returns the single item you are querying for by _id)
Let me know if any of these suggestions help,
Tyler