如何使用 mongoengine 指定散列分片键?
How to specify a hashed shard key using mongoengine?
我目前有一份文件看起来像:
class Document(db.Document):
item1 = db.StringField()
item2 = db.StringField()
我想在 mongoengine 中定义分片键,例如 this. However, I would like define the shard key as a hashed shard key 在文档 ID 上。是否可以在 mongoengine 中执行此操作?如果是这样,你能引导我朝着正确的方向前进吗?
简答
搜索文档和代码后,mongo引擎似乎不支持此功能。
可能的解决方法
MongoDB 在创建散列分片键时在幕后使用散列索引。
使用 mongo shell 命令在字段上手动创建散列索引。
db.collection.createIndex( { fieldName: "hashed" } )
通过运行找到新建索引的名称:
db.collection.getIndexes()
在mongo引擎中使用索引名称作为分片键字段:
class Document(db.Document):
item1 = db.stringField()
item2 = db.StringField()
meta = {
'shard_key': ('_indexName_')
}
我目前有一份文件看起来像:
class Document(db.Document):
item1 = db.StringField()
item2 = db.StringField()
我想在 mongoengine 中定义分片键,例如 this. However, I would like define the shard key as a hashed shard key 在文档 ID 上。是否可以在 mongoengine 中执行此操作?如果是这样,你能引导我朝着正确的方向前进吗?
简答
搜索文档和代码后,mongo引擎似乎不支持此功能。
可能的解决方法
MongoDB 在创建散列分片键时在幕后使用散列索引。
使用 mongo shell 命令在字段上手动创建散列索引。
db.collection.createIndex( { fieldName: "hashed" } )
通过运行找到新建索引的名称:
db.collection.getIndexes()
在mongo引擎中使用索引名称作为分片键字段:
class Document(db.Document): item1 = db.stringField() item2 = db.StringField() meta = { 'shard_key': ('_indexName_') }