在mongodb的cmd中使用命令:
db.test2.createIndex({ "type" : 1, "amount" : 1, "loss" : 1, "price" : 1, "create_date" : 1 }, {unique:true})
在python中我可以轻松地为'find_one'命令编写方法,即:
@staticmethod
def find_one(collection, query):
return Database.DATABASE[collection].find_one(query)
但写一个创建索引会引发错误,即:
@staticmethod
def create_index(collection):
return Database.DATABASE[collection].createIndex({ "type" : 1, "amount" : 1, "loss" : 1, "price" : 1, "create_date" : 1 }, {unique:true})
给出错误:
return Database.DATABASE[collection].createIndex({ "type" : 1, "amount" : 1, "loss" : 1, "price" : 1, "create_date" : 1 }, {unique:true})
NameError: name 'unique' is not defined
答案 0 :(得分:0)
在pymongo中创建索引的方法是create_index
。你应该这样做 -
my_collection.create_index([("type", pymongo.ASCENDING),("amount", pymongo.ASCENDING),("loss", pymongo.ASCENDING),("price", pymongo.ASCENDING),("create_date", pymongo.ASCENDING)], unique=True)
查看文档here