我在pymongo中制作了两个函数,但我想要的是不同于我从函数中得到的任何想法,我该如何修复它? &g



保存Close,Symbol, Timeframe的函数

def Save_(self,collection,symbol,price,TF):
db = self.get_db('MTF')[collection]
B = {'ts':time.time(),"Symbol":symbol,
"Price":price,'TimeFrame':TF}
data = db.insert_one(B)
return data

从mongodb获取数据的函数

def find_all(self,collection):
db = self.get_db('MTF')[collection]
Symbols ={}
data = db.find({})
for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]
return Symbols

images from mongodb[2]: https://i.stack.imgur.com/RLtnz.png

images from B[1]: https://i.stack.imgur.com/AtwSy.png

如果你看到函数B的图像只给了我一个时间框架,但函数保存有4个时间框架

看看这个循环:

for i in data:
Symbols[i['Symbol']] = [i['Price'],i['TimeFrame']]

如果你有相同的Symbol来自MongoDB,它会覆盖任何以前的值,所以你只会得到每个符号的最终值,这就是你所看到的。

要修复它,你有几个选项:你可以检查键并创建或附加值到Symbols;或者您可以在聚合查询中使用$push

相关内容

最新更新