本番コードにインデックスを追加するにはどうすればよいですか?私はそれをコマンドとして追加する方法だけを見つけ、完全なコードに埋め込まれていません:
クエリを高速化するためにインデックスを追加する場合:
db.users.ensure_index(the_key)
だから私はそれをクラスに追加しようとしました:
class Registration(BaseHandler):
def post(self):
# do stuff to get user information using the self.get_argument()
user={"all information":informations}
self.db.users.insert(user, w=1)
self.db.users.ensure_index(pseudo, commune)
しかし、次のようなエラーが発生します。
self.db.users.ensure_index(pseudo, commune)
File "build\bdist.win-amd64\egg\pymongo\collection.py", line 829, in ensure_index
return self.create_index(key_or_list, cache_for, **kwargs)
File "build\bdist.win-amd64\egg\pymongo\collection.py", line 740, in create_index
self.__name, name, cache_for)
File "build\bdist.win-amd64\egg\pymongo\connection.py", line 330, in _cache_index
expire = datetime.timedelta(seconds=cache_for) + now
TypeError: unsupported type for timedelta seconds component: unicode
また、サブドキュメントの挿入を使用する場合も同じヒントになると思います。
self.db.users.update({"email":email}, {"$push":{"produit_up":{"id":id, "namep":namep, "nombre":nombre}}})
self.db.users.ensure_index("product_up.namep") #????