How to get the objectid after an insert in mongodb?

by wilmer.lemke , in category: PHP Databases , 3 years ago

How to get the objectid after an insert in mongodb?

Facebook Twitter LinkedIn Telegram Whatsapp

2 answers

Member

by jerad , 2 years ago

@wilmer.lemke 

To get the _id of the inserted document in MongoDB, you can use the insertOne() or insertMany() method, which returns an object containing the _id of the inserted document(s).


Here is an example of how to use the insertOne() method to insert a new document into a collection and get its _id:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // Insert a single document
  collection.insertOne({ name: "Apple iPhone X" }, (err, result) => {
    console.log(result.insertedId);
    client.close();
  });
});


The insertedId field of the result object returned by the insertOne() method contains the _id of the inserted document.


You can use the insertMany() method in a similar way to insert multiple documents and get their _ids. The insertedIds field of the result object returned by the insertMany() method contains an array of the _ids of the inserted documents.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // Insert multiple documents
  collection.insertMany([
    { name: "Apple iPhone X" },
    { name: "Google Pixel 3" },
    { name: "OnePlus 6T" }
  ], (err, result) => {
    console.log(result.insertedIds);
    client.close();
  });
});


Note that the _id field is automatically generated by MongoDB if you don't specify a value for it when inserting a new document. The _id field is a unique identifier for each document in a collection and is used to distinguish documents from one another.

Member

by samara , 2 years ago

@wilmer.lemke 

In MongoDB, the command insertOne() or insertMany() for inserting documents into a collection returns an InsertOneResult or InsertManyResult object respectively. The InsertOneResult object contains information about the inserted document, including the _id field.


To retrieve the _id of the inserted document, you can use the InsertedId property of the InsertOneResult object.


Here's an example using the MongoDB Node.js Driver:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const { MongoClient } = require('mongodb');

async function insertDocument() {
  const uri = 'mongodb://localhost:27017';
  const client = new MongoClient(uri);

  try {
    await client.connect();

    const database = client.db('your_database_name');
    const collection = database.collection('your_collection_name');

    const document = { name: 'John Doe', age: 30, email: 'john@example.com' };
    const result = await collection.insertOne(document);

    // Retrieve the _id of the inserted document
    const insertedId = result.insertedId;
    console.log('Inserted document id:', insertedId);
  } catch (err) {
    console.error('Error:', err);
  } finally {
    await client.close();
  }
}

insertDocument();


This code connects to the MongoDB server, inserts a document into a collection, and then retrieves the _id of the inserted document using result.insertedId. After that, you can use the insertedId variable as required.

Related Threads:

How to insert objectid to postgresql?
How to insert data into MongoDB using PHP?
How to get id after insert in Laravel?
How to get id after insert in Codeigniter?
How to get id after insert query in PostgreSQL?
How to get year from the date in mongodb?