python/mongodb更新和子树结构

python/mongodb更新和子树结构,python,mongodb,Python,Mongodb,这是一个包含OHLC库存数据的示例文档,被截断(通过python打印) 关于这一点,有几个问题: 有没有办法在文档中而不是在集合中对事物进行索引?我希望能够轻松地按日期查找数据,也许有更好的方法来组织数据 我对如何检索或更新特定的定价数据感到困惑,我尝试使用以下方法推送新的定价数据: var=collection.find({'ticker':ticker})//查找正确的文档 var[0]。更新({'$push':{'pricing':newpricingdata}})//更新公司值 但它不起

这是一个包含OHLC库存数据的示例文档,被截断(通过python打印)

关于这一点,有几个问题:

  • 有没有办法在文档中而不是在集合中对事物进行索引?我希望能够轻松地按日期查找数据,也许有更好的方法来组织数据

  • 我对如何检索或更新特定的定价数据感到困惑,我尝试使用以下方法推送新的定价数据:

    var=collection.find({'ticker':ticker})//查找正确的文档

    var[0]。更新({'$push':{'pricing':newpricingdata}})//更新公司值

  • 但它不起作用。发现工作正常,更新不正常

    newpricingdata看起来像(python打印):

  • 您将如何通过python检索2012年1月20日的股票代码msft的价格?mongodb文档并没有给出子树操作的好例子

  • 如果要按日期查询,则:

    collection.ensureIndex({"pricing.Date" : 1}) 
    
    要更新定价数据,您必须在
    集合
    上调用
    update()
    方法,就像在同一
    集合
    上调用find(),并且您需要$pushAll,因为
    newpricingdata
    是一个数组:

    collection.update({ "_id" : ObjectId("4f1c567d60de7d0908000000")}, { '$pushAll' : { 'pricing' : newpricingdata } }, false, false); 
    
    问题:

    您将如何通过以下途径获取2012年1月20日的msft报价 pythonmongodb文档并没有给出很好的示例 子树操作


    不可能只查询和返回数组中匹配的元素,mongodb将提供整个数组。这意味着您必须在python中提取该元素

    哦,哇,这段时间我一直在想,为什么要拆分文档,但我想当你调用它们时,拆分它们会占用更少的内存。我想为每家公司在一个文档中添加更多信息,我想我现在应该将其拆分,因为我不想每次都检索整个文档。这是一个正确的结论吗?Edit看起来可以省略字段猜测这可能是一个很好的缩减查询返回的方法。这是一个好的处理方法吗?
    collection.ensureIndex({"pricing.Date" : 1}) 
    
    collection.update({ "_id" : ObjectId("4f1c567d60de7d0908000000")}, { '$pushAll' : { 'pricing' : newpricingdata } }, false, false);