How to use $slice modifier with other modifiers with $push operator In MongoDB
In this example, we are using the $slice modifier with other modifiers like $each and $sort with $push operator.
Python3
db.contributor.update({name: "Rohit"}, {$push: { language: { $each: ["C + + ", "Kotlin"], $sort: 1 , $ slice : 4 }}}) |
Here,
- The $each modifier is used to add multiple documents to the language array.
- The $sort modifier is used to sort all the items of the modified language array in ascending.
- The $slice modifier is used to keep only the first four sorted items of the language array.
MongoDB – $slice Modifier
MongoDB provides different types of array update operators to update the values of the array fields in the documents and $slice modifier is one of them. This modifier is used to limit the number of array items during a $push operation. Syntax:
{ $push: { <field>: { $each: [ <value1>, <value2>, ... ], $slice: <number> } } }
- If the value of number is zero, then this modifier will update the array field to an empty array.
- If the value of number is negative, then this modifier will update the array field to contain only the last number items.
- If the value of number is positive, then this modifier will update the array field to contain only the first number items.
- $slice modifier must appear with $each modifier in the $push operator. You are allowed to pass an empty array in the $each modifier which help $slice modifier to show its effect. If you use the $slice modifier without $each modifier, then you will get an error.
- The order in which the modifiers appear in $push operation is immaterial.
In the following examples, we are working with:
Database: w3wiki Collection: contributor Document: two documents that contain the details of the contributor in the form of field-value pairs.