MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Pymongo за всяко форматиране

За да подадете javascript код от Python, трябва да го обвиете в bson.Code обект, тъй като в противен случай самият Python (а не PyMongo) ще се опита да го анализира. Това ви дава:

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)
     }'''))

Но фактът, че използвате self там изглежда, че искате да използвате Python код там, а не javascript код. От документация , изглежда като обектът Cursor, върнат от find внедрява протокола Sequence на Python – което означава, че трябва просто да можете да използвате обикновен цикъл на Python вместо forEach (което в документите изглежда казва, че PyMongo така или иначе не прилага):

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. Съхраняване на голям файл от 100 MB в Mongodb

  2. Как да използвате Node.js, за да направите SSH тунелна връзка към база данни MongoDB

  3. Python и MongoDB:Свързване с NoSQL бази данни

  4. Връзката е отказана - свържете се(2) с rake db:seed на Mongodb

  5. Позоваване на целия документ в MongoDB Aggregation Pipeline