sql >> Database >  >> NoSQL >> MongoDB

Pymongo voor elke opmaak

Om javascript-code vanuit Python door te geven, moet je deze in een plaatsen bson.Code object, omdat anders Python zelf (in plaats van PyMongo) het zal proberen te ontleden. Dit geeft je:

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

Maar het feit dat je self . gebruikt daarin zorgt ervoor dat het lijkt alsof je daar Python-code wilt gebruiken, geen javascript-code. Uit de documentatie , lijkt het op het Cursor-object dat is geretourneerd door find implementeert Python's Sequence-protocol - wat betekent dat je gewoon een gewone Python-loop zou moeten kunnen gebruiken in plaats van forEach (waarvan de documenten lijken te zeggen dat PyMongo het toch niet implementeert):

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. Hoe voeg je dezelfde datum in mongodb in als gelezen uit String via Java?

  2. MongoDB C# voor elk BsonElement

  3. Kan ik een tekstquery uitvoeren met het mongodb c#-stuurprogramma?

  4. Hoe deze specifieke gegevens in deze gebruikersverzameling in mongodb bij te werken?