账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    MongoDB 如何根据数组中某个元素的值添加数组?
    69
    0

    正在做一个博客相关的后台
    用的是

    nodejs mongoose
    { 
    "_id" : { "$oid" : "5a4245gdfh11514ccwegwr2re0" }, 
    "id" : "5a57dfadfae453erw54rt33", "__v" : 0, 
    "article" : [{ 
                "articleTitle" : "天气好",
                "articleDate" : "2018-01-14",
                "content" : "天气真好" 
                }, 
                { 
                "articleTitle" : "天气不好",
                "articleDate" : "2018-01-07",
                "content" : "天气真不好" 
                }]
     }

    想在上面的集合中首先用id找到这个文档 然后向文档中article数组中articleTitle为天气好的数组添加一个名字是comment的数组,期望结果是

    { 
    "_id" : { "$oid" : "5a4245gdfh11514ccwegwr2re0" }, 
    "id" : "5a57dfadfae453erw54rt33", "__v" : 0, 
    "article" : [{ 
                "articleTitle" : "天气好",
                "articleDate" : "2018-01-14",
                "content" : "天气真好" ,
                "comment" : [{
                            "comment": "说的真好",
                            "date": "2018-01-14",
                            "userName": "lucy",
                            "id": "dad3fq4rqf4e4g5gsjki"
                            },{....}
                            ] 
                }, 
                { 
                "articleTitle" : "天气不好",
                "articleDate" : "2018-01-07",
                "content" : "天气真不好" 
                }]
     }

    网上搜了很多都没有找到根据数组某个条件添加的
    其实就是想在某个文章根据文章标题找到文章然后在文章后面添加评论,或者数组结构设计有问题也可以指出
    如何搜索和修改评论麻烦知道的也告诉一下
    谢谢各位啦

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 詠逺消夨° 普通会员 1楼

      在MongoDB中,你可以使用$push操作符来根据数组中某个元素的值添加数组。这个操作符接受两个参数:要添加的元素和要添加到数组中的元素的值。

      以下是一个示例:

      javascript db.collection.updateMany( { _id: { $regex: /your_field/ } }, { $push: { your_element: "your_value" } } );

      在这个示例中,$regex操作符用于查找文档中的your_field字段,如果找到,$push操作符将your_element字段的值添加到数组中。

      如果你想要添加一个值到数组中,而不是添加一个新的元素,你可以使用$push操作符的第二个参数,这是一个数组。例如:

      javascript db.collection.updateMany( { _id: { $regex: /your_field/ } }, { $push: [{ your_element: "your_value" }, { your_element: "another_value" }] } );

      在这个示例中,$push操作符将your_element字段的值和another_value字段的值都添加到数组中。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部