It inserts one or multiple documents in the collection and also returns a document containing the status of all inputs. The insert method uses the insert command internally, which is provided by MongoDB.
Syntax:
{ insert: <collection>, documents: [ <document>, <document>, <document>, ... ], ordered: <boolean>, writeConcern: { <write concern> }, bypassDocumentValidation: <boolean> }
Argument Fields
Field | Type | Description |
---|---|---|
insert | string | It is the name of the collection where we want to insert the element. |
documents | array | It is an array of files that we want to insert into the collection |
ordered | boolean | If it sets to true then it returns the result without inserting any remaining documents listed in the insert array when an insert operation fails, and vice versa |
writeConcern | document | It is a document that defines the write concern of insert command. |
bypass Document Validation |
boolean | We can insert the document that does not meet the validation requirement using this field. |
Example:
Let's insert a document into the books collection:
db.runCommand( { insert: "books", documents: [ { _id: 1, bookname: "MongoDB", status: "sold" } ] } )
We can remove any document from the collection using the delete command. There is multiple delete specification in a single delete command. We cannot use it on the capped collection. The delete command is internally used by the removal method, which is provided by the MongoDB.
Syntax:
{ delete: <collection>, deletes: [ { q : <query>, limit : <integer>, collation: <document> }, { q : <query>, limit : <integer>, collation: <document> }, { q : <query>, limit : <integer>, collation: <document> }, ... ], ordered: <boolean>, writeConcern: { <write concern> } }
Argument Fields
Field | Type | Description |
---|---|---|
delete | string | It is the name of the target collection where we want to delete the element. |
deletes | array | It is an array of delete statements on which we want to perform the delete operation. |
ordered | boolean | If it sets to true then it returns the result without inserting any remaining documents listed in the insert array when an insert operation fails, and vice versa |
writeConcern | document | It is a document that defines the write concern of the delete command. |
q | document | It is the query that matches to delete. |
limit | integer | We can limit the matching document to delete using this field. Specify 0 to delete all matching documents and vice versa. |
collation | document | It is an optional field and used to define the collation used for the operation. Syntax: collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
Examples:
The following example deletes a document from the book collection that has the status equal to A by specifying the limit 2.
db.runCommand( { delete: "books", deletes: [ { q: { status: "A" }, limit: 1 } ] } )
The update command makes changes to the document in a collection. It contains multiple update statements. It is used by the update method provided by the MongoDB drivers.
Syntax:
db.runCommand( { update: <collection>, updates: [ { q: <query>, u: <document or pipeline>, // Changed in MongoDB 4.2, upsert: <boolean>, multi: <boolean>, collation: <document>, arrayFilters: <array>, hint: <document|string> // Available starting in MongoDB 4.2 }, ... ], ordered: <boolean>, writeConcern: { <write concern> }, bypassDocumentValidation: <boolean> } )
Command fields:
Field | Type | Description |
---|---|---|
update | string | It is the name of the target collection where we want to update the array. |
updates | array | It is the array of update statements to perform the update operation on the given collection. |
ordered | boolean | It is an optional field if it is set to true. It will return the result without performing the remaining update operation and vice versa. |
writeConcern | document | It is a document that expresses the write concern of the update command. It describes the level of acknowledgment requested from MongoDB for write operations to a standalone MongoDB. |
bypass Document Validation |
boolean It enables the update operation to bypass document validation. | |
q | document | It is the query that matches the documents we want to update. |
u | document | It is the document where the update operator expressions are stored. |
upsert | boolean | If this field is set to true, then it performs an insert operation if no document matches the query. |
multi | boolean | It this field is set to true; it will update all the documents that meet the query criteria. |
collation | document | It specifies language-specific rules for string comparison. Syntax: collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
arrayfilters | array | It is an array of documents that describe which array elements we want to modify. |
hint | string/ document |
It is a document that specifies the index to use to support the query predicate. |
Example:
Let's create a student's collection
Db.students.insertMany([ { _id: 1, student: "john", status: "Pending", points: 0, misc1: "note to self: confirm status", misc2: "Need to activate" }, { _id: 2, student: "Michael", status: "D", points: 59, misc1: "reminder: ping me at 100pts", misc2: "Some random comment" }, ])
The run command uses the $set and $inc operators to update the status of a document where the member equals "john."
db.runCommand( { update: "students", updates: [ { q: { student: "john" }, u: { $set: { status: "A" }, $inc: { points: 1 } } } ], ordered: false, writeConcern: { w: "majority", wtimeout: 5000 } } )
The find command is used to execute a query and returns the first group of results and the id of the cursor from which we can construct a cursor.
Syntax:
db.runCommand( { "find": <string>, "filter": <document>, "sort": <document>, "projection": <document>, "hint": <document or string>, "skip": <int>, "limit": <int>, "batchSize": <int>, "singleBatch": <bool>, "comment": <string>, "maxTimeMS": <int>, "readConcern": <document>, "max": <document>, "min": <document>, "returnKey": <bool>, "showRecordId": <bool>, "tailable": <bool>, "oplogReplay": <bool>, "noCursorTimeout": <bool>, "awaitData": <bool>, "allowPartialResults": <bool>, "collation": <document> } )
Command Fields:
Field | Type | Description |
---|---|---|
find | string | In this field, we can define the name of the collection. |
filter | document | It filters the query. |
sort | document | It is a document that contains the sorting details of the query. |
projection | document | It is the document that contains the projection specification to determine which fields to include in the returned documents. |
hint | string | It is a document that specifies the index name as the string or the index key pattern. |
skip | positive integer | This filed contains the number of documents to be skipped. |
limit | Non-negative integer | We can set the maximum number of documents we want to return. |
batchSize | Non-negative integer | It contains the number of documents we want to return in the first batch. |
singleBatch | boolean | It contains the details of whether to close the cursor after the first batch of the result. |
maxTimeMS | +ve integer | We can set the time limit for the processing operation on the cursor. |
readConcern | document | It specifies the read concern level.
ReadConcern: { level: <value> } |
max | document | It contains the upper bound for the given index. |
min | boolean | It contains the lower bound for the given index. |
returnKey | boolean | If it is true, return only the index keys in the resulting documents. |
showRecordID | boolean | It is used to return the record identifier for each document. |
tailable | boolean | It returns a tailable cursor for a capped collection. |
awaitData | boolean | It is used to temporarily block the getMore command on the cursor. |
oplogReplay | boolean | It is a command used for replaying a replica set's oplog. For example -
{ find: "data", oplogReplay: true, filter: { ts: { $gte: new Timestamp(1514764800, 0) } } } |
noCursorTimeout | boolean | This filed to prevent the server from timing out idle cursors. |
allowPartialResults | boolean | This field prevents throwing an error if some shards are unavailable. |
collation | document | It specifies the collation for the operations Syntax: collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
Example:
In the example below, the command sorts the documents in the result set by the name field and limit the result set by six documents.
db.runCommand( { find: "restaurants", filter: { rating: { $gte: 9 }, cuisine: "American" }, projection: { name: 1, rating: 1, address: 1 }, sort: { name: 1 }, limit: 6 } )
It modifies and returns a single document at a time. The returned document does not include the modification made on the update by default. We need to use the new option to return the modified document.
Syntax:
{ findAndModify: <collection-name>, query: <document>, sort: <document>, remove: <boolean>, update: <document or aggregation pipeline>, // Changed in MongoDB 4.2 new: <boolean>, fields: <document>, upsert: <boolean>, bypassDocumentValidation: <boolean>, writeConcern: <document>, collation: <document>, arrayFilters: <array> }
Command Fields
Field | Type | Description |
---|---|---|
query | document | The query field contains the same query selectors as used in the db.collection.find() method. |
sort | document | It defines the sort order of the document. |
remove | boolean | This field removes the document specified in the query field. |
update | document/ array | It will update the specified document. |
new | boolean | If it sets to true, it will return the modified document rather than the original one. |
fields | document | It is a subset of the fields to return. It specifies an inclusion of field with value 1.
fields: { <field1>: 1, <field2>: 1, ... } |
upsert | boolean | It is used with the updated field. If it is true, it creates a new document and updates a single document that matches the query. The default value of this filed is false. |
bypass Document Validation |
boolean | It enables findAndModify to bypass document validation during the process. |
writeConcern | document | It is a document that expresses the write concern for the command. |
maxTimeMS | integer | It declares the time limit for the operation. |
FindAndModify | String | This field contains the collection against which we have to run the command. |
collation | documentThe collation field allows users to specify language-specific rules for string comparison. Syntax: collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } |
|
arrayFilters | array | It is the array of filter documents that determine that defines which array elements will be modified for the update operation. |
Example:
db.runCommand( { findAndModify: "book", query: { name: "MongoDB" }, sort: { rating: 4 }, update: { $inc: { price: 1 } }, upsert: true } )