'Convert string to ObjectID in MongoDB

I am developing an API using Codeigniter and MongoDB. In some parts of the database I have saved the ID of an image in ObjectID format instead of a string. Now I got an ID in string format and I need to query the database using it.

How can I "convert" a string to an ObjectID so that I can do the query?

From this:

34234234234234234234

To this:

ObjectID("34234234234234234234")

UPDATE

I found a solution. Just do this new MongoId('34234234234234234234');



Solution 1:[1]

Using mongoose:

var mongoose = require('mongoose');
var objectId = mongoose.Types.ObjectId('569ed8269353e9f4c51617aa');

Using native driver (https://stackoverflow.com/a/21076589/3377073)

var ObjectId = require('mongodb').ObjectId;
doc._id = new ObjectId(doc._id); // wrap in ObjectID

Solution 2:[2]

You just need to require the ObjectId function from your mongo.

ObjectId = require('mongodb').ObjectID;

Then you can use it like that:

ObjectId("34234234234234234234")

Solution 3:[3]

If you are using Meteor

var id = new Mongo.ObjectID("34234234234234234234");

Solution 4:[4]

you can now convert string to objectId on mongodb 4.0 and above. there is new feature to convert from string id to objectId

here you can see the documentation $toObjectId

Solution 5:[5]

or better use

var mongodb = require(‘mongodb’); //this might have been defined at the beginning of your code.
//now use it
query = {_id:mongodb.ObjectId('569ed8269353e9f4c51617aa')};

and the rest is the same.

Solution 6:[6]

var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('34234234234234234234');

Solution 7:[7]

mongo DB version v3.6.3

how to save string input to MongoDB ObjectId on express controller code

const mongoose = require('mongoose');
var ObjectId = require('mongodb').ObjectId;
user: mongoose.Types.ObjectId(req.body.user)
console.log(user, typeof(user))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 julien bouteloup
Solution 3 Alex K
Solution 4 Carlos
Solution 5 Gelineau
Solution 6 Tejesh Teju
Solution 7 Mr Coder