颤动/飞镖.在不使用ISODATE的情况下在mongodb中获取两个日期之间的数据



我正在使用mongo 3.6。我有一个数据库,其中包含一个名为date的字段,类型为Date,我想返回两个特定日期之间的所有文档($find(。

问题是我必须在 Flutter/Dart 中编写这些查询,所以我不能使用ISODATE()来解析我的日期,因为(据我所知(没有这样的函数,尽管我确实尝试过.toIso8601String但没有运气。

我尝试的所有内容都会导致空响应(没有返回文档,但没有错误(。

我尝试过的事情:

{"date": {"$gte": "2018-08-23T09:34:32.000Z"}}

{"date": {"$gte": [{ "$dateFromString": { "dateString": "$date" }}, "2018-08-23T09:34:32.000Z"]}}

{"date": {"$gte": {"$date":"2018-08-23T09:34:32.000Z"}}}

{"date": {"$gte": {"$date":"2018-08-23 09:34:32.000"}}}

等等。

拜托,有谁知道如何解决这个问题?

提前致谢

您可以使用mongo_dart包并查看其存储库(特别是方法testDateTime(。然后你可以做一些事情:

var collectionName = 'users';
var collection = db.collection(collectionName);
await collection.insertAll([
{ 'name': 'John', 'birthday_date': DateTime.utc(2018, 8, 23, 12, 00, 00) },
{ 'name': 'Alice', 'birthday_date': DateTime.utc(2018, 8, 23, 10, 43, 24) },
{ 'name': 'Jim', 'birthday_date': DateTime.utc(2018, 8, 23, 8, 30, 0) }
]);
var result = await collection
.find(where.gte('birthday_date', DateTime.utc(2018, 8, 23, 9, 34, 32)))
.toList();

最新更新