获取java中的字符串mongo字段数据类型

li9yvcax  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(328)

我在mongo db中存储了string、arraylist、objectid、date等字段。。我只想得到java中数据类型为string的字段。到目前为止,我已经编写了以下代码:

MongoCollection<Document> mongoCollection = database.getCollection(collectionName);
Iterable<Document> fields = mongoCollection.find();

但它返回集合中的所有字段,而不考虑数据类型,即string是否有其他方法仅获取数据类型string的字段?

lskq00tm

lskq00tm1#

$type 是你要找的接线员。

Iterable<Document> fields = 
     mongoCollection.find(new Document("field", new Document("$type", "string")));

参考

db.collection.aggregate([
  {
    "$project": {
      "data": {//Reshape as fields are unknown
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {//Denormalize
    $unwind: "$data"
  },
  {
    "$match": {//Find string fields
      "data.v": {
        $type: "string"
      }
    }
  },
  {
    "$project": {//Filter the keys
      "key": "$data.k"
    }
  }
])

操场

相关问题