Tôi đang cố gắng lấy từ điển đặt hàng ở Pymongo. Tôi đã đọc nó có thể được thực hiện với bson.son.Son. Tài liệu là HereLàm thế nào để có được các bộ từ điển theo thứ tự trong pymongo?
Tuy nhiên, tôi dường như không làm cho nó hoạt động. Không có nhiều trên google về nó. Có một số cuộc thảo luận về cấu hình pymongo đầu tiên để nói với nó để sử dụng các đối tượng SON nhưng không có ví dụ. Một người bạn đã đề xuất chuyển thông số khi bạn thực hiện tìm kiếm. Anh không thể nhớ.
Tôi có thể tạo đối tượng SON. Nhưng khi họ được đưa vào DB và sau đó quay trở lại ra ngoài họ chỉ là đồng bằng dicts.
Tôi không chắc chắn thực sự là ví dụ mã để cung cấp cho bạn vì tôi thực sự không biết bắt đầu từ đâu. Đoạn mã dưới đây tạo đối tượng SON trống mỗi lần tôi thêm người dùng mới. Đối tượng 'sub_users' cũng được tạo bằng SON. Khi tôi đọc tài liệu tài khoản trở lại từ DB họ chỉ là con trăn bình thường.
account['sub_users'][sub_user_name] = bson.SON()
with mongo_manager.Collection(CFG.db, 'Users') as users:
users.save(account)
Có thể thông qua quá trình tìm kiếm như thế này để định cấu hình? Đây là đề nghị bạn bè của tôi nhưng anh không thể nhớ.
with mongo_manager.Collection(CFG.db, 'Users') as users:
account = users.find_one({'_id': _id, 'DOC':'OrderedDict})
Bất kỳ ý tưởng nào?
Câu trả lời thú vị. cảm ơn. –
+1 thông minh và hữu ích – shx2
Có sự khác biệt nào về hiệu suất giữa việc sử dụng đối tượng 'OrderedDict' và' SON' không? Nhìn vào các nguồn ([ở đây] (https://github.com/mongodb/mongo-python-driver/blob/master/bson/son.py#L33), và [ở đây] (https://github.com /python/cpython/blob/d4edfc9abffca965e76ebc5957a92031a4d6c4d4/Lib/collections/__init__.py)), cả hai đều là các lớp con của 'dict', nhưng' OrderedDict' có triển khai C (với một Python thuần túy là dự phòng) trong khi 'SON' có vẻ để chỉ thực hiện Python ... –