gpt4 book ai didi

python - Pymongo forEach 格式化

转载 作者:可可西里 更新时间:2023-11-01 09:19:55 26 4
gpt4 key购买 nike

如何设置 forEach 函数的格式,使其可以停在多行上而不会导致语法错误?有点像

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

最佳答案

要从 Python 传递 javascript 代码,您需要将其包装在 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 代码。来自documentation ,它看起来像从 find 返回的 Cursor 对象实现了 Python 的 Sequence 协议(protocol)——这意味着你应该能够使用常规的 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)

关于python - Pymongo forEach 格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11858689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com