Find a document by an object id in that doc in mongoDB node js express js


Hey this i want to fetch the products of a certain user so i added the user in the model by Object id , but when i was setting the router callBack function i didn’t know how to do it !

    "_id": {
        "$oid": "62f250d3e2533cf4ca2ad7f3"
    "image": "",
    "brand": "ASUS",
    "price": {
        "$numberInt": "250"
    "rating": null,
    "numReviews": null,
    "isFeatured": false,
    "name": "Surface Pro 7 128GB",
    "description": "Tablet PC - Intel Core i3 1005G1 Ice Lake, touchscreen 12.3\" IPS 2736 × 1824, RAM 4GB LPDDR4X, Intel UHD Graphics",
    "category": {
        "$oid": "5f15d54cf3a046427a1c26e3"
    "user": {
        "$oid": "62f0e99be78e33cc5662d1f4"
    "reviews": [{
        "avatar": "",
        "name": "Johnny Bravo",
        "review": "Amazing experience all around"
    }, {
        "avatar": "",
        "name": "Asterix",
        "review": "It's very hard. Only managed with resource to magic potion"
    }, {
        "avatar": "",
        "name": "Wild Coyote",
        "review": "All my trickery and tools paid of. Thank ACME for suggesting this product to me"
    "countInStock": {
        "$numberInt": "8"
    "__v": {
        "$numberInt": "0"
    "richDescription": "eatures a detachable keyboard and offers the comfort of a classic laptop as well as the convenience of a tablet.&nbsp",
    "images": ["http://localhost:3000/public/uploads/5f15d8852a025143f9593a7c-1604665316399.png", "http://localhost:3000/public/uploads/5f15d8852a025143f9593a7c-1604665316400.jpeg"]

as You can see the user object id is included so how can i find it ! this i what i tried but it didn’t work

router.get(`/:id/products`, async (req, res) => {
  const productList= await Product.find({user.$}).populate("user");

  if (!productList) {
    res.status(500).json({ success: false });



Replace Product.find({user.$})
with Product.find({user._id: mongo.ObjectId(})


$oid is a way to represent ObjectId in JSON. $oid is not a property that exists on the document. We need to convert the id received in request to an ObjectId and match it with the _id field of the document.


Wrap the conversion into a try/catch or something similar. Converting a string to an ObjectId can fail if the string is not a proper representation of an ObjectId.

const mongo = require('mongodb');

let idAsObjectId;
try {
  idAsObjectId = mongo.ObjectId(
} catch (err) {
  // handle error

Answered By – Ramit Mittal

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published