【问题标题】:how to push a comment in an embedded document in mongodb with java driver如何使用 java 驱动程序在 mongodb 的嵌入式文档中推送评论
【发布时间】:2023-04-04 14:49:02
【问题描述】:

我有以下文件:

enter code here

{ "_id" : ObjectId("56c49b52a5b24ba2a979a964"),

"FirstName" : "satvik",
“姓氏”:“波纳卡拉”,
“专业”:“信息保障”,
“房间邮报”:[
    {
        “postId”:1,
        "title" : "我在花园广场有一个房间可以分享",
        “cmets”:[
            {
                "comment1" : "我想加入",
                “作者”:“ashish”
            },
            {
                "comment2" : "已预订",
                “作者”:“puneeth”
            }
        ]
    },
    {
        “postId”:2,
        "title" : "我在安斯利瀑布有一个房间可以分享",
        “cmets”:[
            {
                "comment1" : "能留下多少",
                “作者”:“桑迪普”
            },
            {
                "comment2" : "我下周日可以来吗??",
                “作者”:“桑迪普”
            }
        ]
    }
]

}

如何添加新评论 { "comment3":"从 java 推送评论", “作者”:“Java” } 在帖子 ID 下的 cmets 部分中:来自 java 的 1

【问题讨论】:

    标签: arrays mongodb comments push mongo-java-driver


    【解决方案1】:

    您需要匹配 postId 1,然后将新评论推送到 "cmets" ,如下所示:

    db.[your collection name].update({"RoomPost" :{$elemMatch :{"postId" : 1}}}, {$push : {"RoomPost.$.comments": {"comment3" :"some comment"}}})
    

    用java驱动写很简单,'update'部分是这样的:

    BasicDBObject  update = new BasicDBObject("$push", new BasicDBObject("RoomPost.$.comments",new BasicDBObject("comment3" ,"some comment" ) ))
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多