首页 > 解决方案 > 点和美元符号的mongodb含义

问题描述

我正在调试一个使用 flask_pymongo 的代码

我看到了这段代码

   dabb = mongo.db.tbl.find({
            "transactions": {'$elemMatch': {"from":{'$elemMatch':{"from":str(to)}},"to":{'$elemMatch':{"to":str(frm)}}}}
        },{"transactions.$": 1 })

我不明白 {"transactions.$": 1 } 是做什么的。

在此处输入图像描述

标签: mongodbpymongo

解决方案


位置 $ 运算符标识要更新的数组中的元素,而无需显式指定该元素在数组中的位置。

它限制数组的内容返回:

  1. 与数组上的查询条件匹配的第一个元素。
  2. 如果没有为数组指定查询条件,则为第一个元素(从 MongoDB 4.4 开始)。
    dabb = mongo.db.tbl.find({
            "transactions": {
                 '$elemMatch': {
                          "from":{
                             '$elemMatch':{ "from":str(to) }
                                 },
                          "to": {
                             '$elemMatch':{"to":str(frm)}
                                 }
                              }
                           }          // Only apply for first element then meet query condition within an array
                         },          //  when a element meet the query condition 
          {"transactions.$": 1 })   //   it will only return that element from array
                                  

在获得满足查询条件的转换数组中的第一个元素后,它将返回该元素。请参阅包含大量示例的文档

在您的情况下,此链接更合适:


推荐阅读