使用Java更新值mongo

一些人

我正在使用Java Mongo驱动程序进行数据库交互。我要对数据库行和相当嵌套的对象执行定期更新。像这样的东西:

MyObject:

{
    _id: dbGeneratedId,
    myId: "A String ID that i created",
    myTime: "new Date()",
    myList: 
        [
        {
            myString: "abcdefghij",
            myInteger: 9000
        },
        {
            myString: "qwertyasdf",
            myInteger: 9001
        },
        {
            myString: "loremipsum",
            myInteger: 9002
        }
    ]
}

每次更新都涉及在每个List项目下myListmyString对象下添加新的List项目或将一些字符串附加到该对象。我发现了很多用于编写/查找项目的参考,而没有用于更新嵌套对象中的项目的参考。有人可以帮我弄这个吗。

编辑1:如果有人指出如何根据myInteger搜索获得“列表”项之一,这也将有所帮助

PS:Java的mongo新手,请原谅我的无知

帕文·加西姆

您可以使用$ push运算符插入新的列表项

您可以在外壳程序上运行以下命令以添加新的列表项。

db.myObject.update({"myId" : "A String ID that i created"},{$push:{myList: {myString:"new string", myInteger:9003}}})

您可以如下使用Java驱动程序添加列表项。

        DBCollection coll = db.getCollection("myObject");
        DBObject query = new BasicDBObject("myId", "A String ID that i created");

        DBObject listItem = new BasicDBObject();
        listItem.put("myString", "my new string");
        listItem.put("myInteger", 9003);

        DBObject updateObj = new BasicDBObject("myList", listItem);

        coll.update(query, new BasicDBObject("$push", updateObj));

您可以在shell上按以下方式获取单个元素。

db.myObject.find({"myList.myInteger" : 9003}, {"myList.$" : 1})

从Java驱动程序,您可以运行相同的代码,如下所示:

DBCursor cur = coll.find(new BasicDBObject("myList.myInteger", 9003), new BasicDBObject("myList.$", 1));

您可以按以下方式删除对象:

db.nested.update({"myId" : "A String ID that i created"},{$pull:{myList: {myString:"new string", myInteger:9003}}})

在Java中,您可以按照以下步骤进行操作:

    DBCollection coll = db.getCollection("myObject");
    DBObject query = new BasicDBObject("myId", "A String ID that i created");

    DBObject listItem = new BasicDBObject();
    listItem.put("myString", "my new string");
    listItem.put("myInteger", 9003);

    DBObject updateObj = new BasicDBObject("myList", listItem);

    coll.update(query, new BasicDBObject("$pull", updateObj));

PS:当前无法更新阵列中的所有项目。吉拉(Jira)有一个未解决的问题。您可以从JIRA-1243检查它

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用mongo Java Driver 3.0从Mongo集合中获取字段的不同值时发生异常

来自分类Dev

如何使用公式(或表达式)通过Mongo DB C#Drivers 4.2更新值?

来自分类Dev

无法使用流星表单中的动态数组ID更新mongo值

来自分类Dev

我想使用 java 在 mongo db 的集合中更新具有多个查询的文档

来自分类Dev

使用基于值的Java脚本更新Json Object

来自分类Dev

使用Java Streams更新地图值

来自分类Dev

使用Java中的按值传递更新树节点

来自分类Dev

在Java中使用Xpath更新Xml标签的值

来自分类Dev

使用基于值的Java脚本更新Json Object

来自分类Dev

如何使用 Java Script 更新选定的选项值

来自分类Dev

更新mongo文档时如何使用变量?

来自分类Dev

如何使用Mongo JS批量更新

来自分类Dev

使用mongoose findOneAndUpdate更新mongo集合

来自分类Dev

更新mongo文档时如何使用变量?

来自分类Dev

使用.update更新值

来自分类Dev

使用 linq 更新值

来自分类Dev

Mongo和Java读取嵌套文档的值

来自分类Dev

Mongo使用未知的父键查找值

来自分类Dev

Mongo脚本更新对象(如果它具有特定值)

来自分类Dev

Ruby / Mongo从* found *文档中批量更新动态值

来自分类Dev

多线程更新值java

来自分类Dev

使用“ this”更新对象内的值

来自分类Dev

Ruby使用检测更新值

来自分类Dev

使用lambda更新JSON值

来自分类Dev

使用xmlstarlet更新XML值

来自分类Dev

使用lambda更新JSON值

来自分类Dev

使用函数更新对象值

来自分类Dev

使用 group by 更新列值

来自分类Dev

使用 Numpy 查找值并更新