java - 使用 Java 更新 mongodb 中的列表字段

标签 java mongodb

我有一个包含列表作为字段之一的类。我怎样才能更新这个字段。

找到更新字段的示例

BasicDBObject newDocument3 = new BasicDBObject().append("$set", new 
    BasicDBObject().append("type", "dedicated server"));

collection.update(new BasicDBObject().append("hosting", "hostA"), newDocument3);

来自链接 -> http://www.mkyong.com/mongodb/java-mongodb-update-document/

这就是我尝试过的

BasicDBObject objectUpdateCommand = new BasicDBObject("$push", new 
    BasicDBObject("someList", stringValue));

collection.update(new BasicDBObject().append("id", user.getId()).append("email", 
    user.getEmail()), objectUpdateCommand);

结果:没有变化。

我错过了什么?

在 shell 上尝试过,它有效[我知道它不匹配所有 id,但它可以用于测试目的]

db.user.update( { Id: 'yourid'}, {$push: { someList: 'appendNewValue'} } )

最佳答案

我已将以下行插入到集合中。

{ "_id" : ObjectId("50bc89ef88555f5ad35da8ba"), "id" : 1, "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dca8b9afa8ed9ca8b9afa8f2bfb3b1" rel="noreferrer noopener nofollow">[email protected]</a>", "list" : [ "list1", "list2" ] }
{ "_id" : ObjectId("50bc89f788555f5ad35da8bb"), "id" : 2, "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bfcbdacccb8dffcbdacccb91dcd0d2" rel="noreferrer noopener nofollow">[email protected]</a>", "list" : [ "list1", "list2" ] }

然后通过使用以下代码,我可以更新 id=1 的文档。

BasicDBObject cmd = new BasicDBObject().append("$push", new  BasicDBObject("list", "list3"));
coll.update(new BasicDBObject().append("id", 1).append("email","<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e4a5b4d4a0f7e4a5b4d4a105d5153" rel="noreferrer noopener nofollow">[email protected]</a>"), cmd);

更新后行如下所示:

{ "_id" : ObjectId("50bc89ef88555f5ad35da8ba"), "id" : 2, "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="22564751561062564751560c414d4f" rel="noreferrer noopener nofollow">[email protected]</a>", "list" : [ "list1", "list2" ] }
{ "_id" : ObjectId("50bc89f788555f5ad35da8bb"), "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7f0b1a0c0b4e3f0b1a0c0b511c1012" rel="noreferrer noopener nofollow">[email protected]</a>", "id" : 1, "list" : [ "list1", "list2", "list3" ] }

再次检查您的代码。它应该适用于此代码。

关于java - 使用 Java 更新 mongodb 中的列表字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679265/

相关文章:

java - 检查字符串是波斯语还是英语

java - AsyncTask 可变参数的用途

java - DBCP XAMPP 不接受我的时区

javascript - mongoDB - 使用 $set 和对象更新文档

java - 调试时 onPostExecute() 与 doInBackground() 无关

java - 不以//开头如何接受单行 Java 注释?

java - Spring MongoDB 进程/线程泄漏

javascript - MongoDB - 使用键中的空格访问游标

php - fatal error : Class 'MongoDate' not found when using mongodb php driver 1. 1.2 和 PHP 7.0.2 - Laravel 5.1

mongodb - 增加 Mongo BSON 对象的最大大小会导致 Boost 库编译错误