Pagination Query

Basic Syntax

db.collection.find({query criteria})
           .sort({sort field: sort order})
           .skip(rows to skip)
           .limit(page size)

Parameter Description

  • Sort order: 1 for ascending, -1 for descending
  • Skip rows: Calculation formula is (page - 1) * page size
  • Limit count: Specifies number of documents returned per page

Performance Optimization

  1. Avoid using large skip() values on large datasets, which affects performance
  2. Alternative: Use range queries (such as _id > last_id) with limit() to implement pagination
  3. Add indexes on sort fields to improve query efficiency

Data Update

db.collection.update(
  <query>,
  <update>,
  {
    upsert: <boolean>,
    multi: <boolean>
  }
)

Update Operators

  • $set: Sets field value
  • $unset: Removes field
  • $inc: Increments field value
  • $push: Adds element to array

WriteConcern Write Mechanism

{
  w: <value>,
  j: <boolean>,
  wtimeout: <number>
}

w Parameter

  • w=1 (default): Requires acknowledgment from primary node
  • w=0: “fire and forget” mode
  • w=majority: Requires write to majority of nodes

j Parameter

  • j=true: Requires data to be written to disk journal before returning acknowledgment

wtimeout Parameter

  • Sets timeout in milliseconds, returns error if exceeded

Data Deletion

db.collection.remove(
  <query>,
  {
    justOne: <boolean>
  }
)