gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:22 24 4
gpt4 key购买 nike

我想知道是否有人可以帮助我使用日期作为参数在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com