有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Mongodb异步驱动程序文档获取值

我的MongoDB数据库中有一些文档

看起来像这样:

{ "_id" : { "$oid" : "5598d61b0cfb246b90daa3f7" }, "name" : "Sarah", "uuid" : "488f69e9-8070-40f0-8c0a-b5d0bd53bdfe", "createdDate" : { "$date" : 1436079643735 }, "istested" : false }
{ "_id" : { "$oid" : "5598d6260cfb2461d4ad4f98" }, "name" : "Omah", "uuid" : "93e572c0-8acd-4397-8487-4d458bbafa8d", "createdDate" : { "$date" : 1436079654217 }, "istested" : false }
{ "_id" : { "$oid" : "5598d6300cfb246bace63cef" }, "name" : "Secret", "uuid" : "60e1413e-49e3-4315-a970-7111d55fe8d1", "createdDate" : { "$date" : 1436079664902 }, "istested" : false }

现在我想知道名字 其中uuid = 93e572c0-8acd-4397-8487-4d458bbafa8d(Omah)

我该怎么做?(使用com.mongodb.async)


共 (1) 个答案

  1. # 1 楼答案

    要获取名称whereuuid = 93e572c0-8acd-4397-8487-4d458bbafa8d,请使用^{}方法查询集合,创建一个筛选器以传递给^{}方法以获取集合中文档的子集,使用Projections助手类中的投影参数进行查找操作以限制返回的字段,然后在^{}操作上调用^{}方法以返回第一个文档或null而不是光标。比如说,

    import static com.mongodb.client.model.Projections.*;
    import static com.mongodb.client.model.Filters.*;
    
    Block<Document> printDocument = new Block<Document>() {
        @Override
        public void apply(final Document document) {
            System.out.println(document.toJson());
        }
    };
    
    collection.find(eq("uuid", "93e572c0-8acd-4397-8487-4d458bbafa8d"))
              .projection(fields(include("name"), excludeId()))
              .first(printDocument);
    

    将打印文档:

    { "name" : "Omah" }