我在 pymongo 中制作了 Tow 函数,但是我想要的结果与我从函数中得到的不同,我该如何解决它?

I Made Tow function in pymongo but the out but that i want is different from i get from the function any ideas how can i fix it?

保存收盘价、品种、时间范围的函数

    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

图片来自 mongodb [2]: https://i.stack.imgur.com/RLtnz.png

图像来自 B 函数 [1]: https://i.stack.imgur.com/AtwSy.png

如果你看到功能 B 的图像只给出了时间范围但功能保存有 4 个时间范围

查看此循环:

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

如果您有来自 MongoDB 的相同 Symbol,它将覆盖任何先前的值,因此您将只能获得您所看到的每个符号的最终值。

要修复它,您有几种选择:您可以检查密钥并创建值或将值附加到 Symbols;或者您可以在聚合查询中使用 $push