zoukankan      html  css  js  c++  java
  • MongoDB "$" 字符 下标位置

    我们可以修改列表里面元素的名字

    例如:

    修改age=34的数据,hobby里面的"足球"改为"网球"

    > db.user.find({age:34})
    { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }

    第一种方法:

    修改了,需要用到hobby.$

    > db.user.updateOne({age:34,hobby:"足球"},{$set:{"hobby.$":"网球" } } )
    { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
    > 
    > db.user.find({age:34})
    { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "网球" ] }

    第二种方法:

    我们也可以用这种方法,把hobby里面"网球"元素改为"足球"

    利用这种方法找到列表的第二个元素,修改为足球

    > db.user.find({age:34})
    { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "网球" ] }
    > 
    > 
    > db.user.updateOne({age:34,hobby:"网球"},{$set:{"hobby.2":'足球' } } )
    { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
    > db.user.find({age:34})
    { "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }

    "$" 字符 代表 下标位置索引,类似于python的列表 list[1],list[2],存储 满足前置条件列表元素的下标索引

    如果 是 一个很长很长很长的 Array列表 你要查找其中一个值,可以用第一种方法 : 下标使用 字符  "$" 代替数字 

    返回满足条件数据

    > db.user.findOne({age:34,"hobby":"足球"})
    {
        "_id" : ObjectId("5ca7a4c4219efd687462f968"),
        "id" : 4,
        "name" : "xiaogang",
        "age" : 34,
        "hobby" : [
            "羽毛球",
            "篮球",
            "足球"
        ]
    }

    如果我们使用update的话,满足条件的数据下标位置,就会传递到"$"字符中,在我们更新操作时,就相当于

    对这个位置的元素 进行操作

     

     

  • 相关阅读:
    js配置文件路径和项目目录文件夹位置的一致性
    MyBatis DTD文件下载地址
    Maven安装问题
    WebService客户端(以命令方式创建)
    Error configuring application listener of class org.springframework.web.cont
    HashMap与LinkedHashMap的区别
    同一台电脑配置多个JBoss
    WebService之客户端
    【solvebug】Java反射报错java.beans.IntrospectionException: Method not found,lombok的@Accessors注解
    【运维】windows server 2008 R2 Standard中如何安装 mysql8.0
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/10671681.html
Copyright © 2011-2022 走看看