我试图通过以下mongoexport电话从我的mongodb获取某一天的订单:

mongoexport --db store --collection user_data --query "{'order.created_order':{$gt:ISODate("2013-02-05T00:00:00.000Z"),$lt:ISODate("2013-02-06T00:00:00.000Z")}, 'order.status':'paid'}" --out ordersfeb6.json

但我目前遇到以下错误:

Thu Feb  7 18:33:43 Assertion: 10340:Failure parsing JSON string near: 'order.cre
0x56a223 0x5712e5 0x53e0f7 0x53e21e 0x8b7739 0x524f2b 0x5258a3 0x7fa7b77bd76d 0x525975 
mongoexport(_ZN5mongo15printStackTraceERSo+0x23) [0x56a223]
mongoexport(_ZN5mongo11msgassertedEiPKc+0xc5) [0x5712e5]
mongoexport(_ZN5mongo8fromjsonEPKcPi+0x377) [0x53e0f7]
mongoexport(_ZN5mongo8fromjsonERKSs+0xe) [0x53e21e]
mongoexport(_ZN6Export3runEv+0x489) [0x8b7739]
mongoexport(_ZN5mongo4Tool4mainEiPPc+0x72b) [0x524f2b]
mongoexport(main+0x23) [0x5258a3]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7fa7b77bd76d]
mongoexport() [0x525975]
assertion: 10340 Failure parsing JSON string near: 'order.cre

从这个问题mongoexport JSON parsing error中,我知道javascript用于判断mongo查询的某些部分.我在想:$gt和$lt操作符需要javascript吗?这是我的问题吗?如果没有,我不确定我的问题出在哪里,任何建议都将不胜感激.谢谢你的阅读!

推荐答案

这里的问题是如何表示日期,它们需要以Date种类型和纪元格式传递.试试这个:

mongoexport --db store --collection user_data --query '{"order.created_order":{$gt:new Date(1360040400000),$lt:new Date(1360990800000)}, "order.status" : "paid"}' --out ordersfeb6.json

如果您希望将ISODate转换为epoch,只需在shell中调用date,如下所示:

> new Date(2013,01,16)*1
1360990800000

然后验证:

> new Date(1360990800000)
ISODate("2013-02-16T05:00:00Z")

Update:正如imcaptor comments 中指出的,在Date构造函数中,月份是以零为基础的(0=1月,11=12月),这不是大多数人会想到的,而且很容易忘记.在上面的例子中,我通过了01,得到了一个2月的日期,正如你从验证中看到的ISODate.

Mongodb相关问答推荐

使用单个/多个值查询任何/特定,而不使用if块

MongoDB:从集合页面数据中提取不同的值

为什么 mongoose 在 mongodb 中找不到我的数据

无法配置数据源:未指定url属性,无法为 MongoDb 配置嵌入数据源

Mongo按最大分组排序

MongoDB shell:如何删除列表以外的所有集合

将 MongoDB BsonDocument 转换为字符串

MongoDB:插入重复键更新

使用 mgo 从 golang 中的 Mongodb 中 Select 列

为什么 MongoDB 配置服务器必须只有一个或三个?

带有 mongodb 和 nodejs 的实时 Web 应用程序

mongodb 模式设计命名约定

使用 Node.js 和 mongodb 处理超时

java.lang.IncompatibleClassChangeError:Implementing class Mongo

mongoose得到`TypeError: user.save is not a function` - 出了什么问题

Mongodb 类型引用 node

MongoDB:查询和检索嵌入式数组中的对象?

Mongodb 按字段名称查找任何值

MongoDb:聚合 $lookup 过滤外部文档

为什么 Mongo 提示会使查询运行速度提高 10 倍?