 
  
 | Public Member Functions | |
| def | __init__ | 
| def | __del__ | 
| def | __repr__ | 
| def | get_count | 
| def | split_by_condition | 
| def | split_by_percent | 
| def | split_async_by_condition | 
| def | split_async_by_percent | 
| def | bulk_insert | 
| def | insert | 
| def | update | 
| def | upsert | 
| def | save | 
| def | delete | 
| def | query | 
| def | query_and_update | 
| def | query_and_remove | 
| def | create_index | 
| def | get_indexes | 
| def | drop_index | 
| def | get_collection_name | 
| def | get_cs_name | 
| def | get_full_name | 
| def | aggregate | 
| def | get_query_meta | 
| def | attach_collection | 
| def | detach_collection | 
| def | create_lob | 
| def | open_lob | 
| def | get_lob | 
| def | remove_lob | 
| def | truncate_lob | 
| def | list_lobs | 
| def | query_one | 
| def | explain | 
| def | truncate | 
| def | alter | 
| def | create_id_index | 
| def | drop_id_index | 
| def | enable_sharding | 
| def | disable_sharding | 
| def | enable_compression | 
| def | disable_compression | 
| def | set_attributes | 
Collection for SequoiaDB
All operation need deal with the error code returned first, if it has.
Every error code is not SDB_OK(or 0), it means something error has appeared,
and user should deal with it according the meaning of error code printed.
@version: execute to get version
          >>> import pysequoiadb
          >>> print pysequoiadb.get_version()
@notice : The dict of built-in Python is hashed and non-ordered. so the
          element in dict may not the order we make it. we make a dict and
          print it like this:
          ...
          >>> a = {"avg_age":24, "major":"computer science"}
          >>> a
          >>> {'major': 'computer science', 'avg_age': 24}
          ...
          the elements order it is not we make it!!
          therefore, we use bson.SON to make the order-sensitive dict if the
          order is important such as operations in "$sort", "$group",
          "split_by_condition", "aggregate","create_collection"...
          In every scene which the order is important, please make it using
          bson.SON and list. It is a subclass of built-in dict
          and order-sensitive
 | def pysequoiadb.collection.collection.__init__ | ( | self | ) | 
create a new collection. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.__del__ | ( | self | ) | 
delete a object existed. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.aggregate | ( | self, | |
| aggregate_options | |||
| ) | 
Execute aggregate operation in specified collection.
Parameters:
   Name               Type       Info:
   aggregate_options  list/tuple The array of dict objects.
                               bson.SON may need if the element is
                               order-sensitive.
                               eg.
                               {'$sort':bson.SON([("name",-1), ("age":1)])}
                               it will be ordered descending by 'name'
                               first, and be ordered ascending by 'age'
Return values:
   a cursor object of result
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.alter | ( | self, | |
| options | |||
| ) | 
Alter the collection.
Parameters:
   Name         Type     Info:
   options      dict     The options to alter
                 ReplSize     : Assign how many replica nodes need to be synchronized when a write request(insert, update, etc) is executed
                 ShardingKey  : Assign the sharding key
                 ShardingType : Assign the sharding type
                 Partition    : When the ShardingType is "hash", need to assign Partition, it's the bucket number for hash, the range is [2^3,2^20]
                 CompressionType : The compression type of data, could be "snappy" or "lzw"
                 EnsureShardingIndex : Assign to true to build sharding index
                 StrictDataMode : Using strict date mode in numeric operations or not
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.attach_collection | ( | self, | |
| cl_full_name, | |||
| options | |||
| ) | 
Attach the specified collection.
Parameters:
   Name            Type  Info:
   subcl_full_name str   The name fo the subcollection.
   options         dict  he low boudary and up boudary
                       eg: {"LowBound":{a:1},"UpBound":{a:100}}
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.bulk_insert | ( | self, | |
| flags, | |||
| records | |||
| ) | 
Insert a bulk of record into current collection. Parameters: Name Type Info: flags int 0 or 1, see Info as below. records list/tuple The list of inserted records. Exceptions: pysequoiadb.error.SDBBaseError Info: flags : 0 or 1. 0 : stop insertting when hit index key duplicate error 1 : continue insertting records even though index key duplicate error hit
| def pysequoiadb.collection.collection.create_id_index | ( | self, | |
| options = None | |||
| ) | 
Create the id index. Parameters: Name Type Info: options dict The configuration options for id index. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.create_index | ( | self, | |
| index_def, | |||
| idx_name, | |||
| is_unique = False, | |||
| is_enforced = False, | |||
| buffer_size = 64 | |||
| ) | 
Create an index in current collection.
Parameters:
   Name         Type  Info:
   index_def    dict  The dict object of index element.
                    e.g. {'name':1, 'age':-1}
   idx_name     str   The index name.
   is_unique    bool  Whether the index elements are unique or not.
   is_enforced  bool  Whether the index is enforced unique This
                    element is meaningful when isUnique is set to
                    true.
   buffer_size  int   The size of sort buffer used when creating index,
                    the unit is MB, zero means don't use sort buffer
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.create_lob | ( | self, | |
| oid = None | |||
| ) | 
create lob.
Parameters:
   Name     Type           Info:
   oid      bson.ObjectId  Specified the oid of lob to be created,
                         if None, the oid is generated automatically
Return values:
   a lob object
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.delete | ( | self, | |
| kwargs | |||
| ) | 
Delete the matching documents in current collection.
Parameters:
   Name        Type  Info:
   **kwargs          Useful options are below
   - condition dict  The matching rule, delete all the documents
                   if not provided.
   - hint      dict  The hint, automatically match the optimal hint
                   if not provided
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.detach_collection | ( | self, | |
| sub_cl_full_name | |||
| ) | 
Dettach the specified collection. Parameters: Name Type Info: subcl_full_name str The name fo the subcollection. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.disable_compression | ( | self | ) | 
Alter the collection to disable compression. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.disable_sharding | ( | self | ) | 
Alter the collection to disable sharding. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.drop_id_index | ( | self | ) | 
Drop the id index. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.drop_index | ( | self, | |
| idx_name | |||
| ) | 
The index name. Parameters: Name Type Info: idx_name str The index name. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.enable_compression | ( | self, | |
| options | |||
| ) | 
Alter the collection to enable compression.
Parameters:
   Name         Type     Info:
   options      dict     The options to alter
                 CompressionType : The compression type of data, could be "snappy" or "lzw"
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.enable_sharding | ( | self, | |
| options | |||
| ) | 
Alter the collection to enable sharding.
Parameters:
   Name         Type     Info:
   options      dict     The options to alter
                 ShardingKey  : Assign the sharding key
                 ShardingType : Assign the sharding type
                 Partition    : When the ShardingType is "hash", need to assign Partition, it's the bucket number for hash, the range is [2^3,2^20]
                 EnsureShardingIndex : Assign to true to build sharding index
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.explain | ( | self, | |
| kwargs | |||
| ) | 
Get the matching documents in current collection.
Parameters:
   Name              Type     Info:
   **kwargs                   Useful options are below
   - condition       dict     The matching rule, update all the
                            documents if not provided.
   - selected        dict     The selective rule, return the whole
                            document if not provided.
   - order_by        dict     The ordered rule, result set is unordered
                            if not provided.
   - hint            dict     The hint, automatically match the optimal
                            hint if not provided.
   - num_to_skip     long     Skip the first numToSkip documents,
                            default is 0L.
   - num_to_return   long     Only return numToReturn documents,
                            default is -1L for returning
                            all results.
   - flags           int      The query flags, default to be 0. Please see
                            the definition of follow flags for
                            more detail. See Info as below.
   - options         dict
Return values:
   a cursor object of query
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   QUERY_FLG_WITH_RETURNDATA : Force to use specified hint to query, if database have no index assigned by the hint, fail to query
   QUERY_FLG_PARALLED        : Enable parallel sub query, each sub query will finish scanning different part of the data
   QUERY_FLG_FORCE_HINT      : In general, query won't return data until cursor gets from database, when add this flag, return data in query response, it will be more high-performance
 
| def pysequoiadb.collection.collection.get_collection_name | ( | self | ) | 
Get the name of current collection. Return values: The name of current collection Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.get_count | ( | self, | |
| condition = None | |||
| ) | 
Get the count of matching documents in current collection.
Parameters:
   Name         Type     Info:
   condition    dict     The matching rule, return the count of all
                       documents if None.
Return values:
   count of result
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.get_cs_name | ( | self | ) | 
Get the name of current collection space. Return values: The name of current collection space Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.get_full_name | ( | self | ) | 
Get the full name of specified collection in current collection space. Return values: The full name of current collection Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.get_indexes | ( | self, | |
| idx_name = None | |||
| ) | 
Get all of or one of the indexes in current collection.
Parameters:
   Name         Type  Info:
   idx_name     str   The index name, returns all of the indexes
                    if this parameter is None.
Return values:
   a cursor object of result
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.get_lob | ( | self, | |
| oid | |||
| ) | 
get the specified lob. Parameters: Name Type Info: oid str/bson.ObjectId The specified oid Return values: a lob object Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.get_query_meta | ( | self, | |
| kwargs | |||
| ) | 
Get the index blocks' or data blocks' infomations for concurrent query.
Parameters:
   Name              Type     Info:
   **kwargs                   Useful options are below
   - condition       dict     The matching rule, return the whole range
                            of index blocks if not provided.
                            eg:{"age":{"$gt":25},"age":{"$lt":75}}.
   - order_by        dict     The ordered rule, result set is unordered
                            if not provided.bson.SON may need if it is
                            order-sensitive.
   - hint            dict     One of the indexs in current collection,
                            using default index to query if not
                            provided.
                            eg:{"":"ageIndex"}.
   - num_to_skip     long     Skip the first num_to_skip documents,
                            default is 0L.
   - num_to_return   long     Only return num_to_return documents,
                            default is -1L for returning all results.
Return values:
   a cursor object of query
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.insert | ( | self, | |
| record | |||
| ) | 
Insert a record into current collection. Parameters: Name Type Info: records dict The inserted record. Return values: ObjectId of record inserted Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.list_lobs | ( | self | ) | 
list all lobs. Parameters: Name Type Info: Return values: a cursor object of query Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.open_lob | ( | self, | |
| oid, | |||
| mode = LOB_READ | |||
| ) | 
open the specified lob to read or write.
Parameters:
   Name     Type                 Info:
   oid      str/bson.ObjectId    The specified oid
   mode     int                  The open mode:
                         lob.LOB_READ
                         lob.LOB_WRITE
Return values:
   a lob object
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.query | ( | self, | |
| kwargs | |||
| ) | 
Get the matching documents in current collection.
Parameters:
   Name              Type     Info:
   **kwargs                   Useful options are below
   - condition       dict     The matching rule, update all the
                            documents if not provided.
   - selector        dict     The selective rule, return the whole
                            document if not provided.
   - order_by        dict     The ordered rule, result set is unordered
                            if not provided.
   - hint            dict     The hint, automatically match the optimal
                            hint if not provided.
   - num_to_skip     long     Skip the first numToSkip documents,
                            default is 0L.
   - num_to_return   long     Only return numToReturn documents,
                            default is -1L for returning
                            all results.
   - flags           int      The query flags, default to be 0. Please see
                            the definition of follow flags for
                            more detail. See Info as below.
Return values:
   a cursor object of query
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   QUERY_FLG_WITH_RETURNDATA : Force to use specified hint to query, if database have no index assigned by the hint, fail to query
   QUERY_FLG_PARALLED        : Enable parallel sub query, each sub query will finish scanning different part of the data
   QUERY_FLG_FORCE_HINT      : In general, query won't return data until cursor gets from database, when add this flag, return data in query response, it will be more high-performance
   QUERY_PREPARE_MORE        : Enable prepare more data when query
   QUERY_FLG_FOR_UPDATE      : When the transaction is turned on and the transaction isolation level is "RC", the transaction lock will not
                       be released until the transaction commit or rollback.
 
| def pysequoiadb.collection.collection.query_and_remove | ( | self, | |
| kwargs | |||
| ) | 
Get the matching documents in current collection and remove.
Parameters:
   Name            Type     Info:
   **kwargs                 Useful options are below
   - condition     dict     The matching rule, update all the
                            documents if not provided.
   - selector      dict     The selective rule, return the whole
                            document if not provided.
   - order_by      dict     The ordered rule, result set is unordered
                            if not provided.
   - hint          dict     The hint, automatically match the optimal
                            hint if not provided.
   - num_to_skip   long     Skip the first numToSkip documents,
                            default is 0L.
   - num_to_return long     Only return numToReturn documents,
                            default is -1L for returning
                            all results.
   - flags         int      The query flags, default to be 0. Please see
                            the definition of follow flags for
                            more detail. See Info as below.
Return values:
   a cursor object of query
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   QUERY_FLG_WITH_RETURNDATA : Force to use specified hint to query, if database have no index assigned by the hint, fail to query
   QUERY_FLG_PARALLED        : Enable parallel sub query, each sub query will finish scanning different part of the data
   QUERY_FLG_FORCE_HINT      : In general, query won't return data until cursor gets from database, when add this flag, return data in query response, it will be more high-performance
   QUERY_FLG_FOR_UPDATE      : When the transaction is turned on and the transaction isolation level is "RC", the transaction lock will not
                       be released until the transaction commit or rollback.
 
| def pysequoiadb.collection.collection.query_and_update | ( | self, | |
| update, | |||
| kwargs | |||
| ) | 
Get the matching documents in current collection and update.
Parameters:
   Name            Type     Info:
   update          dict     The update rule, can't be None.
   **kwargs                 Useful options are below
   - condition     dict     The matching rule, update all the
                            documents if not provided.
   - selector      dict     The selective rule, return the whole
                            document if not provided.
   - order_by      dict     The ordered rule, result set is unordered
                            if not provided.
   - hint          dict     The hint, automatically match the optimal
                            hint if not provided.
   - num_to_skip   long     Skip the first numToSkip documents,
                            default is 0L.
   - num_to_return long     Only return numToReturn documents,
                            default is -1L for returning
                            all results.
   - flags         int      The query flags, default to be 0. Please see
                            the definition of follow flags for
                            more detail. See Info as below.
   - return_new    bool     When True, returns the updated document rather than the original
Return values:
   a cursor object of query
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   QUERY_FLG_WITH_RETURNDATA            : Force to use specified hint to query, if database have
                                        no index assigned by the hint, fail to query
   QUERY_FLG_PARALLED                   : Enable parallel sub query, each sub query will finish scanning
                                        different part of the data
   QUERY_FLG_FORCE_HINT                 : In general, query won't return data until cursor gets from
                                        database, when add this flag, return data in query response,
                                        it will be more high-performance
   QUERY_FLG_KEEP_SHARDINGKEY_IN_UPDATE : The sharding key in update rule is not filtered, when executing
                                        queryAndUpdate.
   QUERY_FLG_FOR_UPDATE                 : When the transaction is turned on and the transaction isolation level is "RC", the transaction lock will not
                                  be released until the transaction commit or rollback.
 
| def pysequoiadb.collection.collection.query_one | ( | self, | |
| kwargs | |||
| ) | 
Get one matching documents in current collection.
Parameters:
   Name              Type     Info:
   **kwargs                   Useful options are below
   - condition       dict     The matching rule, update all the
                            documents if not provided.
   - selected        dict     The selective rule, return the whole
                            document if not provided.
   - order_by        dict     The ordered rule, result set is unordered
                            if not provided.
   - hint            dict     The hint, automatically match the optimal
                            hint if not provided.
   - num_to_skip     long     Skip the first numToSkip documents,
                            default is 0L.
   - flags           int      The query flags, default to be 0. Please see
                            the definition of follow flags for
                            more detail. See Info as below.
Return values:
   a record of json/dict
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   QUERY_FLG_WITH_RETURNDATA : Force to use specified hint to query, if database have no index assigned by the hint, fail to query
   QUERY_FLG_PARALLED        : Enable parallel sub query, each sub query will finish scanning different part of the data
   QUERY_FLG_FORCE_HINT      : In general, query won't return data until cursor gets from database, when add this flag, return data in query response, it will be more high-performance
   QUERY_PREPARE_MORE        : Enable prepare more data when query
   QUERY_FLG_FOR_UPDATE      : When the transaction is turned on and the transaction isolation level is "RC", the transaction lock will not
                       be released until the transaction commit or rollback.
 
| def pysequoiadb.collection.collection.remove_lob | ( | self, | |
| oid | |||
| ) | 
remove lob. Parameters: Name Type Info: oid str/bson.ObjectId The oid of the lob to be remove. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.save | ( | self, | |
| doc | |||
| ) | 
save a documents in current collection, insert if no(matching) _id. Parameters: Name Type Info: doc dict The updating rule. Exceptions: pysequoiadb.error.SDBBaseError Note: It won't work to update the "ShardingKey" field, but the other fields take effect.
| def pysequoiadb.collection.collection.set_attributes | ( | self, | |
| options | |||
| ) | 
Alter the collection.
Parameters:
   Name         Type     Info:
   options      dict     The options to alter
                 ReplSize     : Assign how many replica nodes need to be synchronized when a write request(insert, update, etc) is executed
                 ShardingKey  : Assign the sharding key
                 ShardingType : Assign the sharding type
                 Partition    : When the ShardingType is "hash", need to assign Partition, it's the bucket number for hash, the range is [2^3,2^20]
                 CompressionType : The compression type of data, could be "snappy" or "lzw"
                 EnsureShardingIndex : Assign to true to build sharding index
                 StrictDataMode : Using strict date mode in numeric operations or not
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.split_async_by_condition | ( | self, | |
| source_group_name, | |||
| target_group_name, | |||
| split_condition, | |||
| split_end_condition = None | |||
| ) | 
Split the specified collection from source replica group to target
   replica group by range.
Parameters:
   Name                  Type  Info:
   source_group_name     str   The source replica group name.
   target_group_name     str   The target replica group name.
   split_condition       dict  The matching rule, return the count of
                             all documents if None.
   split_end_condition   dict  The split end condition or None.
                             eg:
                             If we create a collection with the
                             option { ShardingKey:{"age":1},
                             ShardingType:"Hash",Partition:2^10 },
                             we can fill {age:30} as the
                             splitCondition, and fill {age:60}
                             as the splitEndCondition. when split,
                             the target replica group will get the
                             records whose age's hash value are in
                             [30,60). If splitEndCondition is null,
                             they are in [30,max).
Return values:
   task id
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.split_async_by_percent | ( | self, | |
| source_group_name, | |||
| target_group_name, | |||
| percent | |||
| ) | 
Split the specified collection from source replica group to target replica group by percent. Parameters: Name Type Info: source_group_name str The source replica group name. target_group_name str The target replica group name. percent float The split percent, Range:(0,100] Return values: task id Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.split_by_condition | ( | self, | |
| source_group_name, | |||
| target_group_name, | |||
| split_condition, | |||
| split_end_condition = None | |||
| ) | 
Split the specified collection from source replica group to target
   replica group by range.
Parameters:
   Name                  Type     Info:
   source_group_name     str      The source replica group name.
   target_group_name     str      The target replica group name.
   split_condition       dict     The matching rule, return the count
                                of all documents if None.
   split_end_condition   dict     The split end condition or None.
                                eg:
                                If we create a collection with the
                                option { ShardingKey:{"age":1},
                                ShardingType:"Hash",Partition:2^10 },
                                we can fill {age:30} as the
                                splitCondition, and fill {age:60}
                                as the splitEndCondition. when
                                split, the target replica group
                                will get the records whose age's
                                hash value are in [30,60).
                                If splitEndCondition is null, they
                                are in [30,max).
Exceptions:
   pysequoiadb.error.SDBBaseError
 
| def pysequoiadb.collection.collection.split_by_percent | ( | self, | |
| source_group_name, | |||
| target_group_name, | |||
| percent | |||
| ) | 
Split the specified collection from source replica group to target replica group by percent. Parameters: Name Type Info: source_group_name str The source replica group name. target_group_name str The target replica group name. percent float The split percent, Range:(0,100] Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.truncate | ( | self | ) | 
truncate the collection. Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.truncate_lob | ( | self, | |
| oid, | |||
| length | |||
| ) | 
truncate lob. Parameters: Name Type Info: oid str/bson.ObjectId The oid of the lob to be truncated. length int/long The truncate length Exceptions: pysequoiadb.error.SDBBaseError
| def pysequoiadb.collection.collection.update | ( | self, | |
| rule, | |||
| kwargs | |||
| ) | 
Update the matching documents in current collection.
Parameters:
   Name        Type     Info:
   rule        dict     The updating rule.
   **kwargs             Useful option are below
   - condition dict     The matching rule, update all the documents
                      if not provided.
   - hint      dict     The hint, automatically match the optimal hint
                      if not provided
   - flags     int      The update flag
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   UPDATE_FLG_KEEP_SHARDINGKEY : The sharding key in update rule is not filtered, when executing
                               update or upsert.
Note:
   When flag is set to 0, it won't work to update the "ShardingKey" field, but the
   other fields take effect.
 
| def pysequoiadb.collection.collection.upsert | ( | self, | |
| rule, | |||
| kwargs | |||
| ) | 
Update the matching documents in current collection, insert if
   no matching.
Parameters:
   Name          Type  Info:
   rule          dict  The updating rule.
   **kwargs            Useful options are below
   - condition   dict  The matching rule, update all the documents
                     if not provided.
   - hint        dict  The hint, automatically match the optimal hint
                     if not provided
   - setOnInsert dict  The setOnInsert assigns the specified values
               to the fileds when insert
   - flags       int   The update flag
Exceptions:
   pysequoiadb.error.SDBBaseError
Info:
   query flags:
   UPDATE_FLG_KEEP_SHARDINGKEY : The sharding key in update rule is not filtered, when executing
                               update or upsert.
Note:
   When flag is set to 0, it won't work to update the "ShardingKey" field, but the
   other fields take effect.
 
 1.8.2
 1.8.2