Ani*_*ish 1 python mongodb pymongo
我需要根据字段"X"的唯一值删除重复的条目.它在mongodb shell中工作正常:
db.collection.ensureIndex({x' : 1},{unique: true, dropDups: true})
Run Code Online (Sandbox Code Playgroud)
我想用pymongo运行它,我使用的代码如下:
import pymongo
import mmh3
conn = pymongo.MongoClient()
db = conn['scrapy-mongodb']
db.collection.ensure_index({'x' : 1}, {'$unique' : True, '$dropDups' : True})
Run Code Online (Sandbox Code Playgroud)
此代码抛出:
TypeError:如果未指定方向,则key_or_list必须是list的实例
我哪里做错了?
你在几个方面的pymongo调用语法错误了.这应该起作用,假设"collection"是集合的名称.
db.collection.ensure_index([("x" , pymongo.ASCENDING), ("unique" , True), ("dropDups" , True)])
Run Code Online (Sandbox Code Playgroud)
Pymongo(和Python)需要一个键方向对列表而不是Dict,因为Dicts是无序的.升序索引的语法也是pymongo.ASCENDING.最后,unique和dropDups不需要"$".
归档时间: |
|
查看次数: |
2691 次 |
最近记录: |