美文网首页
【mongoDB】mongoDB 多级数据更新(2)

【mongoDB】mongoDB 多级数据更新(2)

作者: Bogon | 来源:发表于2023-05-25 14:27 被阅读0次

    mongoDB如何查看表中的最近10条数据 ?

    在MongoDB中,可以使用find()方法查询表中的数据,并使用sort()方法对数据进行排序,然后使用limit()方法限制查询结果的数量。

    以下是查看表中最新10条数据的语句:

    > use  testDB
    > db.collection.find().sort({_id: -1}).limit(10)
    

    其中,collection是指要查询的表的名称,_id: -1表示按照_id字段进行倒序排序,即最新的数据排在前面,limit(10)表示只查询前10条数据。

    {
            "_id" : "3464f4f9-633d-4081-a7ce-e052eabd2aea",
            "useTimer" : false,
            "scheduleTime" : "2023-02-11 12:25",
            "model" : 2,
            "text" : "测试",
            "msgType" : 2,
            "sysncHeadLine" : false,
            "commentSwitch" : false,
            "commentauditswitch" : false,
            "list" : [
                    {
                            "row" : 0,
                            "date" : "",
                            "title" : "测试",
                            "text" : "",
                            "zip" : "<p>测试</p>",
                            "url" : "",
                            "author" : "",
                            "publishTime" : "2023-02-11 12:15",
                            "commentSwitch" : false,
                            "commentauditswitch" : false,
                            "attaches" : [ ]
                    }
            ],
            "updateTime" : NumberLong("1676089010840"),
            "createTime" : NumberLong("1676089010840"),
            "sendUser" : "63bd0b5ce4b0273b933b5490",
            "sendUserName" : "test",
            "pid" : "10010",
            "group" : "全部订阅用户",
            "eid" : "10086"
    }
    

    要将 "zip" : "<p>测试</p>" 改为 "zip" : "<p>test</p>" ,如何操作?

    可以使用以下代码来更新该条数据中的 "zip" 字段:

    db.collection.updateOne(
        { _id: "3464f4f9-633d-4081-a7ce-e052eabd2aea" },
        { $set: { "list.0.zip": "<p>test</p>" } }
    )
    

    其中,db.collection 是你的集合名称。
    这个命令使用了 updateOne() 方法来更新指定 _id 的文档,使用 $set 操作符将 "zip" 字段更新为 "<p>test</p>"。
    注意,这个命令中的 "list.0" 表示更新该文档中的 list 数组的第一个元素。
    如果你的文档中有多个元素,你需要根据实际情况修改这个路径。

    要将 "zip" : "<p>测试</p>" 删除 ,如何操作?

    要删除 "zip" 字段,可以使用 $unset 操作符来删除该字段。以下是更新语句:

    db.collection.updateOne(
        { _id: "3464f4f9-633d-4081-a7ce-e052eabd2aea" },
        { $unset: { "list.0.zip": "" } }
    )
    

    该命令将 "zip" 字段的值设为空字符串,从而将其删除。
    注意,这个命令中的 "list.0" 表示更新该文档中的 list 数组的第一个元素。
    如果你的文档中有多个元素,你需要根据实际情况修改这个路径。

    如果要在 "zip" : "<p>测试</p>" 下 加一行 "测试key": "测试value" ,如何操作?

    可以使用 updateOne() 方法来更新该条数据,具体操作如下:

    db.collection.updateOne(
       {_id: "3464f4f9-633d-4081-a7ce-e052eabd2aea"},
       {$set: {"list.0.测试key": "测试value"}}
    ) 
    

    其中,第一个参数指定了要更新的数据的条件,第二个参数使用 $set 操作符来指定要更新的字段和值。
    在这里使用了数组索引来指定要更新的子文档中的字段。

    {
            "_id" : "3464f4f9-633d-4081-a7ce-e052eabd2aea",
            "useTimer" : false,
            "scheduleTime" : "2023-02-11 12:25",
            "model" : 2,
            "text" : "测试",
            "msgType" : 2,
            "sysncHeadLine" : false,
            "commentSwitch" : false,
            "commentauditswitch" : false,
            "list" : [
                    {
                            "测试key": "测试value",             
                            "row" : 0,
                            "date" : "",
                            "title" : "测试",
                            "text" : "",
                            "zip" : "<p>测试</p>",
                            "url" : "",
                            "author" : "",
                            "publishTime" : "2023-02-11 12:15",
                            "commentSwitch" : false,
                            "commentauditswitch" : false,
                            "attaches" : [ ]
                    }
            ],
            "updateTime" : NumberLong("1676089010840"),
            "createTime" : NumberLong("1676089010840"),
            "sendUser" : "63bd0b5ce4b0273b933b5490",
            "sendUserName" : "test",
            "pid" : "10010",
            "group" : "全部订阅用户",
            "eid" : "10086"
    }
    

    字典中, {key1 : value1, key2 : value2 } , "测试key": "测试value" 在字典中的 位置,没有关系。

    相关文章

      网友评论

          本文标题:【mongoDB】mongoDB 多级数据更新(2)

          本文链接:https://www.haomeiwen.com/subject/lajhedtx.html