Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-291

Support providing collation per operation

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CXX-971 Done 3.1.0
      JAVA-2241 Done 3.4.0
      CXX-970 Won't Fix
      PYTHON-1113 Done 3.4
      CDRIVER-1372 Done 1.5.0
      PERL-635 Done 1.6.0
      NODE-754 Done 2.2.7
      CSHARP-1706 Done 2.4
      RUBY-1126 Done 2.4.0
      PHPC-734 Done 1.2.0-alpha3, 1.2.0
      PHPLIB-205 Done 1.1.0
      SCALA-249 Done
      RUST-34 Fixed 0.9.0-alpha
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CXX-971 Done 3.1.0 JAVA-2241 Done 3.4.0 CXX-970 Won't Fix PYTHON-1113 Done 3.4 CDRIVER-1372 Done 1.5.0 PERL-635 Done 1.6.0 NODE-754 Done 2.2.7 CSHARP-1706 Done 2.4 RUBY-1126 Done 2.4.0 PHPC-734 Done 1.2.0-alpha3, 1.2.0 PHPLIB-205 Done 1.1.0 SCALA-249 Done RUST-34 Fixed 0.9.0-alpha

      As of server version 3.4 (max wire version 5), a collation option is supported for some commands. Helpers for the following commands therefore must be updated:

      • create
      • createIndexes
      • aggregate
      • count
      • distinct
      • find (command only)
      • findAndModify
      • geoNear
      • group
      • mapReduce
      • remove (command)
      • update (command)

      The follow CRUD API methods are thus affected. Supporting a collation option for these methods is required:

      • count
      • distinct
      • find
      • deleteOne
      • deleteMany
      • findOneAndDelete
      • findOneAndReplace
      • findOneAndUpdate
      • replaceOne
      • updateMany
      • updateOne

      Support defining an index as a key pattern

      Creating an index, dropping an index, and providing an index hint will support collations defined as documents.

      Note about bulk writes

      Given the definition of a Bulk Write Model as a document in the form:

      { updateOne: {  filter: {..}, update: {...} } }
      

      or

      { deleteOne: {  filter: {..} } }
      

      etc., a collation can be defined for each bulk write model as in the following example:

      db.collection.bulkWrite([
      {updateOne: {..., collation: {...}}},
      {updateMany: {..., collation: {...}}},
      {replaceOne: {..., collation: {...}}},
      {deleteOne: {..., collation: {...}}},
      {deleteMany: {..., collation: {...}}}
      ]);
      

      The driver must not automatically add a collation to any of the Bulk Write Models; the user must explicitly provide the collation to each.

            Assignee:
            barrie Barrie Segal
            Reporter:
            rathi.gnanasekaran Rathi Gnanasekaran
            Votes:
            0 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: