标签: mongodb-java

将 mongo 返回的日期转换为这种格式 2015-10-25

我有一个从 mongo db 返回的 json 文件,如下所示:

[
{
    "_id": {
        "$date": "2014-10-19T04:00:00.000Z"
    },
    "value": 29
},
{
    "_id": {
        "$date": "2014-10-20T04:00:00.000Z"
    },
    "value": 20
},
{
    "_id": {
        "$date": "2014-10-21T04:00:00.000Z"
    },
    "value": 21
}
]
Run Code Online (Sandbox Code Playgroud)

现在我想以以下格式读取java中的日期:2014/10/25

但是当我使用:

System.out.println("DAte is : "+result.get("_id").toString() );
Run Code Online (Sandbox Code Playgroud)

结果是:

DAte is : Sun Oct 19 01:00:00 ADT 2014
Run Code Online (Sandbox Code Playgroud)

然后我唯一想到的是使用子字符串并手动将日期转换为 2014-10-25 但我相信会有更好的方法。有谁有想法吗?

更新 :

这是答案:

将日期从一种格式转换为另一种格式不起作用

非常感谢您的帮助

java mongodb-java mongodb-query

1
推荐指数
2
解决办法
1万
查看次数

MongoDB java 客户端的 WriteConcern 不起作用

我是使用 MongoDB 的新手。我刚刚通过 Maven 导入了最新的 MongoDB java 客户端:

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.2.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

然后我写了一个非常简单的程序来测试插入操作。

        //I use a replicaset
    MongoClient mongoClient = new MongoClient(
            Arrays.asList(new ServerAddress("10.12.16.136", 29017),
                    new ServerAddress("10.12.16.136", 29018),
                    new ServerAddress("10.12.16.136", 29019)));

    //I just want to write and ignore any database errors. (This does not work)
    mongoClient.setWriteConcern(WriteConcern.UNACKNOWLEDGED);

    //Get database and collection
    MongoDatabase database = mongoClient.getDatabase("test");
    MongoCollection<Document> collection = database.getCollection("realtime");

    //This does not work too.
    collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED);

    //Make a simple object to insert. I already have a document with the same _id …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-java

1
推荐指数
1
解决办法
5035
查看次数

在mongodb java驱动程序中如何使用两个字段进行排序

使用 mongo java 驱动程序我可以这样排序:

.sort(new BasicDBObject("firstColumn",1));
Run Code Online (Sandbox Code Playgroud)

如何按两个字段排序?

mongodb-java

1
推荐指数
1
解决办法
3479
查看次数

如何在java中使用mongodb $group?

我在 MongoDB 中有一个 processingClickLog 集合。

{
        "_id" : ObjectId("58ffb4cefbe21fa7896e2d73"),
        "ID" : "81a5d7f48e5df09c9bc006e7cc89d6e6",
        "USERID" : "206337611536",
        "DATETIME" : "Fri Mar 31 17:29:34 -0400 2017",
        "QUERYTEXT" : "Tom",
        "DOCID" : "www.demo.com",
        "TITLE" : "Harry Potter",
        "TAB" : "People-Tab",
        "TOTALRESULTS" : "1",
        "DOCRANK" : 1
}
{      "id":
        ....
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 java 中执行一个复杂的查询。我的查询是获取处理的ClickLog 集合,其中

  1. TAB 不等于 People-Tab
  2. DOCRANK 不等于 0
  3. 只返回“USERID”、“DOCID”、“DOCRANK”、“QUERYTEXT”字段
  4. 按 USERID 分组

下面是我的Java代码。我能够满足前三个条件。但是我被困在按 USERID 分组的第四个条件中。

String jsonResult = "";
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase database = mongoClient.getDatabase("test1");
        MongoCollection<Document> collection …
Run Code Online (Sandbox Code Playgroud)

java json group-by mongodb mongodb-java

1
推荐指数
1
解决办法
6615
查看次数

Mongodb Java 3.4 - 从嵌入式文档中获取字段

我无法从嵌入的文档中检索地址字段。我还没有看到 3.4 MongoDB 驱动程序的任何解决方案。

System.out.println("Selecting Person ");

MongoCollection<Document> collection = mdb.getCollection("Person");
MongoCursor<Document> cursor = collection.find().iterator();

try {           
    while (cursor.hasNext()) {
        Document temp_person_doc=cursor.next();
        Document temp_address_doc=temp_person_doc.get("address");   
        String houseNo=temp_address_doc.getString("houseNo");       
    }
} finally {
    cursor.close();
}   
Run Code Online (Sandbox Code Playgroud)

这是文档结构。

{
    "_id" : "5aae9920982f271ba4b08735",
    "firstName" : "homer",
    "surname" : "simpson",
    "address" : {
        "houseNo" : 742,
        "address" : "evergreen terrace",
        "city" : "springfield",
    }
}
Run Code Online (Sandbox Code Playgroud)

java mongodb mongodb-java mongodb-query

1
推荐指数
1
解决办法
2642
查看次数

在 Mongodb 中存储 protobuf java 对象的直接方法?

当需要存储以 Java 实例形式(来自生成的 java 类)的 protobuf3 消息时,最好的选择是存储对象本身,然后从数据库中读回它。

我用它来将此类消息存储在 Mongodb 中。在研究这个问题时,我找不到方法,所以决定在这里询问。

protocol-buffers mongodb mongodb-java proto protobuf-java

1
推荐指数
1
解决办法
4563
查看次数

我们还需要 Java 版 Morphia 吗?

在我的项目中,我使用Morphia来轻松地将 POJO 对象映射到 Mongodb 数据库。但在 2018 年,mongo java 驱动程序开始支持 pojo 自行映射,Morphia 项目被 Mongodb 团队放弃。Morphia 社区版现在已经弃用了DAO,我想知道为什么不直接基于 Mongodb 驱动编写自己的 DAO 类呢?所以我的问题是:

使用Mongodb和Java还需要Morphia吗?Morphia 与直接使用 Mongodb Java 驱动相比有什么好处?

Example code for using the Java driver:

// Getting an object by id:
collection.find(eq("_id", id), Pojo.class).first();

// Insert into collection
collection.insertOne(pojo);

// Update
collection.replaceOne(eq("_id", id), pojo);

// Delete
collection.deleteMany(filter).getDeletedCount();
Run Code Online (Sandbox Code Playgroud)

java mongodb morphia mongodb-java

1
推荐指数
1
解决办法
1599
查看次数

Java + MongoDB托管

我有一个移动应用程序,我需要在后端支持java/mongodb.我正在考虑使用各种组合.我现在不想花很多钱作为它的"爱好"应用程序开始.

这些是我想到的各种选择:

在EC2上托管Java和MogoDB - > Ill必须管理所有mongoDB管理工作,从创建副本集到备份(m不是mongo DB guru)

在mongolab.com或mongohq.com上托管Java someplace(任何建议?)和MongoDB - >他们为我管理mongodb,我只是编写Java层,只是在我的数据库设计上工作.

那里有便宜的选择的任何输入?

java mongodb cloud-hosting mongodb-java

0
推荐指数
1
解决办法
3134
查看次数

在MongoDB中加入的最佳做法是什么?

我有两个类调用School,并Student为你看到的.我想搜索"学校名称是bla bla bla的学生"和"学生的成绩高于90"的学校.我读了一些文件,但我有点困惑.

public class School extends BasicDBObject  {
  private int id;
  private String name;
  private String number;
  private List<Student> studentList = new ArrayList<Student>();,

  //getter and setters
}

public class Student extends BasicDBObject{
  private int id;
  private String name;
  private String grade;
  private School school;

  //getter and setters
}
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-java

0
推荐指数
1
解决办法
2376
查看次数

MongoDB、Java - 从 JSON 查询到文档

嘿,

我需要一些帮助将以下 MongoDB 查询转换为 MongoDB Java 驱动程序查询。

请注意,查询有效。

db.days.aggregate([
    { $match: { 'day' : 'March_1'}},
    { $project: {
        _id : 0,
        day: 1,
        events: {$filter: {
            input: '$events',
            as: 'event',
            cond: {$eq: ['$$event.year', '2002']}
        }}
    }}
])
Run Code Online (Sandbox Code Playgroud)

我的尝试是这样的,但失败了,我需要你的帮助。

Document query = new Document("$match", new Document("day", day)).
    append("$project", new Document("_id", 0).
            append("day", 1).
            append("events", new Document("$filter", new Document(
                    "input", "$" + category).
                    append("as", "event").
                    append("cond", new Document("$eq", Arrays.asList("$$event.year", year))))));
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

"{ "ok" : 0.0, "errmsg" : "A pipeline stage specification object …
Run Code Online (Sandbox Code Playgroud)

java json mongodb mongodb-java aggregation-framework

0
推荐指数
1
解决办法
1037
查看次数