SONManipulator
yazmanız gerekiyor. docs:
SONManipulator örnekleri, PyMongo tarafından otomatik olarak uygulanacak dönüştürmeleri belirtmenize izin verir.
from pymongo.son_manipulator import SONManipulator
class Transform(SONManipulator):
def transform_incoming(self, son, collection):
for (key, value) in son.items():
if isinstance(value, Custom):
son[key] = encode_custom(value)
elif isinstance(value, dict): # Make sure we recurse into sub-docs
son[key] = self.transform_incoming(value, collection)
return son
def transform_outgoing(self, son, collection):
for (key, value) in son.items():
if isinstance(value, dict):
if "_type" in value and value["_type"] == "custom":
son[key] = decode_custom(value)
else: # Again, make sure to recurse into sub-docs
son[key] = self.transform_outgoing(value, collection)
return son
ardından pymongo veritabanı nesnesine ekleyin: sessizce bir piton dizisine bir numpy dizi döküm istiyorsanız yok
db.add_son_manipulator(Transform())
Not _type
alan eklemek için.
"son_manipulator" şu anda kullanımdan kaldırılmıştır. V4.0'da kaldırılacaklar. Resmi tavsiye, belgeleri [docs] 'da belirtildiği gibi pymongoya geçirmeden önce dönüştürmektir (https://api.mongodb.com/python/current/api/pymongo/son_manipulator.html). –