MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Pymongo forEach định dạng

Để chuyển mã javascript vào từ Python, bạn cần phải bọc nó trong bson.Code đối tượng, vì nếu không thì chính Python (chứ không phải PyMongo) sẽ cố gắng phân tích cú pháp nó. Điều này mang lại cho bạn:

import bson
self.request.db.myCollection.find().forEach(bson.Code( '''
    function(u) { 
       u.forSong = self.request.db.song.find_one({}, {'_id': 1})
       self.request.db.save(u)
     }'''))

Nhưng thực tế là bạn đang sử dụng self trong đó làm cho nó trông giống như bạn muốn sử dụng mã Python ở đó, không phải mã javascript. Từ tài liệu , có vẻ như đối tượng Con trỏ được trả về từ find triển khai giao thức Trình tự của Python - nghĩa là bạn chỉ có thể sử dụng một vòng lặp Python thông thường thay vì forEach (mà các tài liệu dường như nói rằng PyMongo vẫn không triển khai):

for u in self.request.db.myCollection.find():
   u.forSong = self.request.db.song.find_one({}, {'_id': 1})
   self.request.db.myCollection.save(u)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. làm thế nào để sử dụng geoNear trong nodejs?

  2. Cập nhật MongoDB với điều kiện

  3. Trình điều khiển Mongo C # - Xây dựng bộ lọc động với lồng nhau

  4. mongod shell không khởi động, data / db không tồn tại

  5. Tại sao MongoDB Class không hoạt động trong Laravel?