java - 如何使用java在mongodb中搜索文档并从中删除字段?

标签 java mongodb mongodb-query mongo-java-driver

我有一个device 集合。

{
   "_id" : "10-100-5675234",
   "_type" : "Device",
   "alias" : "new Alias name", 
   "claimCode" : "FG755DF8N", 
   "hardwareId" : "SERAIL02",
   "isClaimed" : "true",
   "model" : "VMB3010", 
   "userId" : "5514f428c7b93d48007ac6fd" 
 }

我想通过 _id 搜索文档,然后在从结果文档中删除字段 userId更新它。我正在尝试不同的方法,但它们都不起作用。请帮助我。

最佳答案

您可以使用带有 mongo-java 驱动程序的 $unset 以这种方式删除字段:

    MongoClient mongo = new MongoClient("localhost", 27017);
    DB db = (DB) mongo.getDB("testDB");
    DBCollection collection = db.getCollection("collection");
    DBObject query = new BasicDBObject("_id", "10-100-5675234");
    DBObject update = new BasicDBObject();
    update.put("$unset", new BasicDBObject("userId",""));
    WriteResult result = collection.update(query, update);
    mongo.close();

关于java - 如何使用java在mongodb中搜索文档并从中删除字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389746/

相关文章:

javascript - 聚合函数中跳过计数 0

mongodb - 在 MongoDB 数组的相同元素中查找 2 个或更多条件

c# - Mongo Builder 将 `String` 用于 `DateTime` 类字段

android - Android 文档数据库?

node.js - Mongoose 确保文档是唯一的

JavaFX : How to pass value from background thread to JavaFX UI thread with Task

java - 如何从电子邮件应用程序(不是 Gmail)获取未读邮件

mongodb - Docker-MongoDB 中的身份验证问题

java - 用于保存 Java -> HTML 的 Intellij IDEA 插件?

java.sql.SQLException : 'Infinity' is not a valid numeric or approximate numeric value