java - 如何使用 java 删除 MongoDB 上的特定字段?

标签 java json mongodb jackson

我想在显示 JSON 中隐藏 id_jadwal。但现在 id_jadwal 继续显示在我的 JSON 上 我想在显示 JSON 中隐藏 id_jadwal。我在我的框架和 Jackson 中使用 MongoDB 和 java jx-rs

[
    {
        "name": "Style",
        "startTimestamp": 1507611720,
        "endTimestamp": null,
        "place": "gh",
        "description": "gh",
        "status": "DONE",
        "creator": {
            "name": "Pulan",
            "email": "sd@gmail.com",
            "photo": "https://lh6.googleusercontent.com/-Q5Tx0bdvkAU/AAAAAAAAAAI/AAAAAAAAEyU/83rb_x1tyXA/photo.jpg"
        },
        "invitedUsers": [
            {
                "name": "Petra",
                "email": "sd.class@gmail.com",
                "photo": "",
                "present": false,
                "nearby": false
            }
        ],
        "id_jadwal": null,
        "_id": "59db02e8212cba197b7e9d2c"
    }

}]

我的代码:

BasicDBObject query = new BasicDBObject();
query.put("creator.email", email);
query.put("status", status.toString());
MongoCursor<Document> cursor = collection.find(query).iterator();
ObjectMapper objectMapper = new ObjectMapper();

while (cursor.hasNext()) {
    String jsonUser = cursor.next().toJson();

    Event event = objectMapper.readValue(jsonUser, Event.class);
    //objectMapper.setVisibility(event.getId_jadwal(), Visibility.NONE);

    events.add(event);
    events.remove("id_jadwal");

}

最佳答案

您必须在请求级别明确排除您的字段,使用 Projection :

MongoCursor<Document> cursor = collection.find(query).projection(Projections.exclude("id_jadwal").iterator();

关于java - 如何使用 java 删除 MongoDB 上的特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52400615/

相关文章:

jquery - KnockoutJS 映射模型添加到 Observable 数组

json - 使用 Azure Function 向 azure 服务总线主题发送消息时,如何将内容类型指定为 application/json?

javascript - Highcharts,导出时如何本地化语言

mongodb - 查找字段与另一个字段匹配且无需聚合的文档

java - Spring Aop的一些维护

java - 随机化 ArrayList 中的字符串

java - 字符串变量可以保存等于 10 MB 文本文件的数据吗?

java - Java 无法取消引用 Int

mongodb - 当数组大小存储在变量中时,查询 MongoDB 中数组的最后一个元素

php - PHP 未定义 MongoDB remove() 方法