有关使用MongoDB Java驱动程序的一些问题

我正在使用Jersey编写RESTful服务,并且数据存储在Mongodb数据库中。

我想从数据库中获取一项并将其JSON格式返回给客户端。这是我的代码:

    try {
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        DB db = mongoClient.getDB("test");
        DBCollection coll = db.getCollection("entities");

        // Build search query
        BasicDBObject searchQuery = new BasicDBObject();
        searchQuery.put("entity_name", entityName);

        DBCursor cursor = coll.find(searchQuery);

        try {
            if (cursor.hasNext()) {
                return cursor.next().toString();
            } else {
                return "Not found.";
            }
        } finally {
            cursor.close();
            mongoClient.close();
        }
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    return "System error.";

但是我得到的数据包含一个名为id的字段

"_id":{
"$oid":"525c8a4df33fa1b05dab6e6c"
},

我想从结果中消除该字段。怎么做?

第二个问题是:结果中的某些字段是日期。但是结果是这样的:

"publish_date":{
"$date":"1970-01-15T16:48:14.400Z"
},

我希望它显示为:

"publish_date":1970-01-15

我当时正在考虑使用某些第三方库(例如Jackson)来存储所有数据,然后将Jackson对象返回给客户端(Jersey可以将Jackson对象自动传输到正确的JSON格式的数据)。但就我而言,字段数不是固定的。我无法创建实体类来表示结果的结构。

你们有一些好的解决方案吗?

谢谢!

塞缪尔·奥马利

对于问题的第一部分,您需要使用投影来隐藏结果中的某些字段。

DBCursor cursor = coll.find(searchQuery, new BasicDBObject("_id", 0));

对于问题的第二部分,MongoDB Java驱动程序可以使用以下命令返回Date对象:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

document = cursor.next();
Date date = document.getDate("publish_date");
String dateStr = dateFormat.format(date);

如果要将此字符串放回结果文档中以便以JSON格式打印,则可以执行以下操作:

document.put("publish_date", dateStr);

否则,您可以使用新值构建BasicDBObject。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有关“ angularJS与Plupload一起使用的一些问题

来自分类Dev

有关何时使用片段和活动的一些问题

来自分类Dev

有关沙发床复制品细节的一些问题

来自分类Dev

有关Objective-C的一些问题

来自分类Dev

有关SymmetricDS Embedded的一些问题

来自分类Dev

有关克隆/复制TR的一些问题

来自分类Dev

有关OpenGL透明度的一些问题

来自分类Dev

有关表格,css中的位置的一些问题

来自分类Dev

使用jfugue转换密钥-有关Jfugue的一些问题

来自分类Dev

有关带有Openlayers3的WFS-T的一些问题

来自分类Dev

有关angular2提供程序的一些问题

来自分类Dev

Scrapy-有关刮论坛的一些问题

来自分类Dev

有关C语言中内存分配的一些问题

来自分类Dev

有关Progress-4GL中事件处理的一些问题

来自分类Dev

有关Python功能及其工作方式的一些问题

来自分类Dev

有关班级的一些问题

来自分类Dev

C ++ STL容器-有关类型的一些问题?

来自分类Dev

有关“ angularJS与Plupload一起使用的一些问题

来自分类Dev

有关异常安全性和内存泄漏的一些问题

来自分类Dev

有关资源的一些问题

来自分类Dev

有关SSH密钥身份验证的一些问题

来自分类Dev

有关原型和数组的一些问题

来自分类Dev

有关Angularjs指令的一些问题

来自分类Dev

有关解析multiplt Spring View解析器的一些问题

来自分类Dev

有关沙发床复制品细节的一些问题

来自分类Dev

有关cg着色器程序的一些问题(OGRE中的深度阴影映射)

来自分类Dev

有关轮询的一些问题

来自分类Dev

有关光缆的一些问题

来自分类Dev

Java:执行Hadoop MapReduce有一些问题