【问题标题】:remove _id from mongodb result java从 mongodb 结果 java 中删除 _id
【发布时间】:2013-08-29 15:21:27
【问题描述】:

我的代码是

  DBCollection collection = db.getCollection("volume");
  DBCursor cursor = collection.find();
  DBObject resultElement = cursor.next();
  Map resultElementMap = resultElement.toMap();
  System.out.println(resultElementMap);

结果是:

{_id=521b509d20954a0aff8d9b02, title={ "text" : "工作量 订单”,“x”:-20.0},xAxis={“title”:{“text”:“2012”}, “类别”:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月” , "Aug" , "Sep" , "Oct" , "Nov" , "Dec"]}, yAxis={ "min" : 1000.0 , “最大”:7000.0,“标题”:{“文本”:“体积(K)”},“绘图线”:[{ “标签”:{“文本”:“平均”,“x”:25.0},“颜色”:“黑色”, “宽度”:2.0,“值”:30.0,“dashStyle”:“实心”}]},图例={ “背景颜色”:“#FFFFFF”,“反转”:真},系列=[{“名称” :“音量”,“showInLegend”:假,“数据”:[2909.0,3080.0, 4851.0 , 3087.0 , 2960.0 , 2911.0 , 1900.0 , 3066.0 , 3029.0 , 5207.0 , 3056.0 , 3057.0]}]}

我需要从结果中删除 _id。我知道我需要使用collection.find(),但是有人可以帮助我吗?我无法得到 seired 的结果

【问题讨论】:

    标签: java mongodb


    【解决方案1】:

    两种选择:

    您可以从创建的地图中删除“_id”字段:

    ...
    resultElementMap.remove("_id");
    System.out.println(resultElementMap);
    

    或者你可以要求查询结果不包含_id字段:

    DBObject allQuery = new BasicDBObject();
    DBObject removeIdProjection = new basicDBObject("_id", 0);
    
    DBCollection collection = db.getCollection("volume");
    DBCursor cursor = collection.find(allQuery, removeIdProjection);
    DBObject resultElement = cursor.next();
    Map resultElementMap = resultElement.toMap();
    System.out.println(resultElementMap);
    

    有关所有详细信息,请参阅projections 上的文档。

    【讨论】:

      【解决方案2】:

      如果您正在迭代地阅读结果,另一个需要考虑的选项是执行以下操作:

      final FindIterable<Document> foundResults = collection.find();
      for (final Document doc : foundResults) {
          doc.remove("_id");
          // doc.toJson() no longer has _id
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        • 2020-07-02
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多