JAVA 遍历获取MONGO BSON 字段类型
JAVA 遍历MONGO BSON 字段类型,BSON提供如何读取BSOn文档字段类型得方法
引入Mongo 依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-async</artifactId>
<version>3.4.2</version>
</dependency>
<!-- Sadly, we need the mongo-java-driver solely to serialize
Document objects in a sane manner -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.2</version>
</dependency>
如果不需要连接mongo,只引入如下
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.4.2</version>
</dependency>
遍历文档字段,要借助BsonDocument和BsonValue来获取类型
BsonDocument document = BsonDocument.parse(mogonDoc);
MongoColumns column = new MongoColumns();
for(Map.Entry<String,BsonValue> en : document.entrySet()){
BsonValue value = (BsonValue)en.getValue();
String type = value.getBsonType().name();
}
BSON示例文档字符串,传入上面方法mogonDoc变量
BSON类型文档请见:https://docs.mongodb.com/manual/reference/bson-types/
{
"_id" : ObjectId("6168e03a3f2817bf1f25e4fe"),
"_class" : "com.pingan.lcloud.osp.FamilyInfo",
"insNo" : "203669",
"client_id" : "51A2E75F9EF64B638B123D445EB1239",
"create_date" : ISODate("2021-09-24T01:38:45.202Z"),
"personal_info" : {
"client_id" : "51A2E75F9EF64B638B123D445EB1239",
"name" : "小朱",
"age" : 30,
"sex" : "F",
"birth_date" : "1992-05-30",
"tel" : "",
"operate_time" : ISODate("2021-09-20T19:34:03.202Z")
}
}