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

时间:2015-07-05 07:03:06

标签: java mongodb database

我的 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 个答案:

答案 0 :(得分:0)

要将名称设为uuid = 93e572c0-8acd-4397-8487-4d458bbafa8d,请使用 find() 方法查询集合,创建一个过滤器以传递给 find() < / strong>获取集合中文档子集的方法,使用 Projections 帮助程序类中的projection参数进行查找操作以限制返回的字段,然后调用< first() 操作上的strong> find() 方法返回第一个文档或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" }