java - 如何使用 Java 在 MongoDB 3.3 中按日期搜索文档

标签 java mongodb nosql

我想知道是否有人可以帮助我使用日期作为参数在 MongoDB 中搜索集合。我在我的集​​合中存储了一个 java.sql.Date 对象,并且放置/查找没有问题。当我使用日期作为参数进行搜索时,就会出现问题。当我执行他的操作时,我得到一个空结果。

Java 代码:

// Boiler plate
MongoClient client = new MongoClient( "localhost" , 27017 );
MongoDatabase db = client.getDatabase("my-database");
MongoCollection<Document> collection = db.getCollection("my-collection")

// This returns nothing
java.sql.Date date = someFunctionToSetDate();
MongoCursor<Document> cursor = collection.find(new Document("date",date)).iterator();

有人知道我哪里出错了吗?

最佳答案

您可以尝试使用 java.util.date 而不是 java.sql.date。

这是我在本地尝试过的,它有效

package com.mongo.examples;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.bson.BsonDocument;
import org.bson.Document;
import org.bson.conversions.Bson;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class MongoDateTest {

    public static void main(String args[]){

        MongoClient mongoClient = new MongoClient("localhost",27017);
        MongoDatabase database = mongoClient.getDatabase("testdates");

        MongoCollection<Document> collection = database.getCollection("dts");
        collection.drop();
        List<Document> insertList = new ArrayList<Document>();
        Date date = new Date();
        Document document = new Document().
                append("_id", 20).append("date",date);
        insertList.add(document);
        collection.insertMany(insertList);
        System.out.println(collection.count());
        MongoCursor<Document> doc = collection.find(new Document("date", date)).iterator();
        System.out.println(doc.next().getDate("date"));
    }
}

输出:

1
Wed Aug 24 12:34:20 PDT 2016

关于java - 如何使用 Java 在 MongoDB 3.3 中按日期搜索文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39130182/

相关文章:

java - Wrap_Content 带有服装单选按钮?

java - HashMap 对象数组数据被替换

java - 从一个线程写入套接字 channel 并从另一个线程选择

.net - 外部访问RavenDb服务器

java - 读取/写入/存储非常大的顺序数据集

c# - 与 Xamarin.Forms 一起使用的面向 NoSQL 文档的存储替代方案

java - bitCount 导致错误,可以修复吗?

node.js - 使用 mongoose nodejs 将集合填充到另一个集合 mongoDB 中

c# - MongoDB C# 查询字符串上的 'Like'

mongodb - 在子文档字段通配符上创建文本索引