• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

mongodb增删改查之数组数据集使用

Sql admin 1个月前 (05-19) 73次浏览 0个评论 扫描二维码

之前的一篇文章介绍更新数组的操作,现在如果我们的文档中存在一个数组,后续向其中添加新的数据,我们要确保数组中的数据都是不存在重复的,也是构造一个 set 集合,那么可以借助$addToSet 方法(尼玛这些方法的命名都是驼峰法)

看到这个方法的名字就知道保证数组集合是一个不存在重复的数据集,现在我们通过实际的操作来证明这个过程。

源数据集

{

    “_id” : ObjectId(“5afd34052c63ae1a943bdb27”),

    “name” : “hello”,

    “friends” : 34.0,

    “enemies” : 2.0,

    “favor” : [

        “2”,

        “3”,

        “4”,

        “5”,

        “6”,

        “7”,

        “8”,

        “9”,

        “10”,

        “1”

    ]

}

{

    “_id” : ObjectId(“5afd347c2c63ae1a943bdb29”),

    “name” : “joe”,

    “friends” : 34.0,

    “enemies” : 4.0

}

现在我们要向“favor”字段中添加新的数据

db.test.update({"name" : "hello"},{"$addToSet":{"favor":{"$each":["1","12"]}}})
得到的结果
{ 
    "_id" : ObjectId("5afd34052c63ae1a943bdb27"), 
    "name" : "hello", 
    "friends" : 34.0, 
    "enemies" : 2.0, 
    "favor" : [
        "2", 
        "3", 
        "4", 
        "5", 
        "6", 
        "7", 
        "8", 
        "9", 
        "10", 
        "1", 
        "12"
    ]
}
{ 
    "_id" : ObjectId("5afd347c2c63ae1a943bdb29"), 
    "name" : "joe", 
    "friends" : 34.0, 
    "enemies" : 4.0
}


现在我们学会了更改数组元素以及插入元素,当然我们也可以删除数组元素

db.test.update({"name" : "hello"},{"$pop":{"favor":1}})
数字为 1 表示从末尾开始删除元素,当为-1 的时候是从开始删除数组的元素
结果如下所示
{ 
    "_id" : ObjectId("5afd34052c63ae1a943bdb27"), 
    "name" : "hello", 
    "friends" : 34.0, 
    "enemies" : 2.0, 
    "favor" : [
        "2", 
        "3", 
        "4", 
        "5", 
        "6", 
        "7", 
        "8", 
        "9", 
        "10", 
        "1"
    ]
}
{ 
    "_id" : ObjectId("5afd347c2c63ae1a943bdb29"), 
    "name" : "joe", 
    "friends" : 34.0, 
    "enemies" : 4.0
}

除了使用 pop 之外还可以通过 pull 基于某种条件的方式来删除数据,凡是符合条件的数据都会被删除
比如举个例子:
你的数组中包含两个“book1”,那么我们想要删除这个元素,那么这两个数据都会被删除掉

db.test.update({"name" : "hello"},{"$pull":{"favor":"5"}})
运行结果如下
{ 
    "_id" : ObjectId("5afd34052c63ae1a943bdb27"), 
    "name" : "hello", 
    "friends" : 34.0, 
    "enemies" : 2.0, 
    "favor" : [
        "2", 
        "3", 
        "4", 
        "6", 
        "7", 
        "8", 
        "9", 
        "10", 
        "1"
    ]
}
{ 
    "_id" : ObjectId("5afd347c2c63ae1a943bdb29"), 
    "name" : "joe", 
    "friends" : 34.0, 
    "enemies" : 4.0
}


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mongodb 增删改查之数组数据集使用
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!