MongoDB – Insert Document

In this chapter, we will learn how to insert documents into the MongoDB collection.

The insert() Method

To insert data into MongoDB collection, you need to use MongoDB’s insert() or save() method.

Syntax

The basic syntax of the insert() command is as follows −

>db.COLLECTION_NAME.insert(document)

Example

> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "MongoDB Overview",
... description: "MongoDB is no sql database",
... by: "adglob",
... url: "https://www.adglob.in",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })

Here mycol is our collection name, as created in the previous chapter. If the collection doesn’t exist in the database, then MongoDB will create this collection and then insert a document into it.

In the inserted document, if we don’t specify the _id parameter, then MongoDB assigns a unique ObjectId for this document.

_id is 12 bytes hexadecimal number unique for every document in a collection. 12 bytes are divided as follows −

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

You can also pass an array of documents into the insert() method as shown below:.

> db.createCollection("post")
> db.post.insert([
       {
              title: "MongoDB Overview",
              description: "MongoDB is no SQL database",
              by: "adglob",
              url: "https://www.adglob.in",
              tags: ["mongodb", "database", "NoSQL"],
              likes: 100
       },
       {
       title: "NoSQL Database",
       description: "NoSQL database doesn't have tables",
       by: "adglob",
       url: "https://www.adglob.in",
       tags: ["mongodb", "database", "NoSQL"],
       likes: 20,
       comments: [
              {
                     user:"user1",
                     message: "My first comment",
                     dateCreated: new Date(2013,11,10,2,35),
                     like: 0
              }
       ]
}
])
BulkWriteResult({
       "writeErrors" : [ ],
       "writeConcernErrors" : [ ],
       "nInserted" : 2,
       "nUpserted" : 0,
       "nMatched" : 0,
       "nModified" : 0,
       "nRemoved" : 0,
       "upserted" : [ ]
})

To insert the document you can use db.post.save(document) also. If you don’t specify _id in the document then the save() method will work the same as the insert() method. If you specify _id then it will replace the whole data of the document containing _id as specified in the save() method.

The insertOne() method

If you need to insert only one document into a collection you can use this method.

Syntax

The basic syntax of the insert() command is as follows −

>db.COLLECTION_NAME.insertOne(document)

Example

The following example creates a new collection named empDetails and inserts a document using the insertion() method.

> db.createCollection("empDetails")
{ "ok" : 1 }
> db.empDetails.insertOne(
       {
              First_Name: "Radhika",
              Last_Name: "Sharma",
              Date_Of_Birth: "1995-09-26",
              e_mail: "radhika_sharma.123@gmail.com",
              phone: "9848022338"
       })
{
       "acknowledged" : true,
       "insertedId" : ObjectId("5dd62b4070fb13eec3963bea")
}

The insertMany() method

You can insert multiple documents using the insertMany() method. To this method, you need to pass an array of documents.

Example

The following example inserts three different documents into the empDetails collection using the insertMany() method.

> db.empDetails.insertMany(
       [
              {
                     First_Name: "Radhika",
                     Last_Name: "Sharma",
                     Date_Of_Birth: "1995-09-26",
                     e_mail: "radhika_sharma.123@gmail.com",
                     phone: "9000012345"
              },
              {
                     First_Name: "Rachel",
                     Last_Name: "Christopher",
                     Date_Of_Birth: "1990-02-16",
                     e_mail: "Rachel_Christopher.123@gmail.com",
                     phone: "9000054321"
              },
              {
                     First_Name: "Fathima",
                     Last_Name: "Sheik",
                     Date_Of_Birth: "1990-02-16",
                     e_mail: "Fathima_Sheik.123@gmail.com",
                     phone: "9000054321"
              }
       ]
)
{
       "acknowledged" : true,
       "insertedIds" : [
              ObjectId("5dd631f270fb13eec3963bed"),
              ObjectId("5dd631f270fb13eec3963bee"),
              ObjectId("5dd631f270fb13eec3963bef")
       ]
}

Leave a Reply