mongo 时间格式化 查询_如何导出格式化的时间戳用mongoexport命令?-问答-阿里云开发者社区-阿里云...

有时,我们可能想使用mongoexport的查询参数导出集合的某一特定部分。

例如,一个notebook集合(collection),每个notebook文档(document)的文档都有一个生产日期属性。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

{

"_id" : ObjectId("531ce460000000019b9643bc"),

"company" : "Samsung",

"date" : ISODate("2014-03-09T22:00:00Z"),

"price" : 2000,

"brand" : "Ultrabook",

}

{

"_id" : ObjectId("531ce460000000019b9643ba"),

"company" : "Sony",

"date" : ISODate("2014-03-08T22:00:00Z"),

"price" : 1500,

"brand" : "Vaio",

}

{

"_id" : ObjectId("531ce460000000019b9643bd"),

"company" : "Apple",

"date" : ISODate("2014-03-07T22:00:00Z"),

"price" : 2250,

"brand" : "MacbookPro",

}

{

"_id" : ObjectId("531ce460000000019b9643be"),

"company" : "Apple",

"date" : ISODate("2014-03-06T22:00:00Z"),

"price" : 1200,

"brand" : "MacbookAir",

}

{

"_id" : ObjectId("531ce460000000019b9643bf"),

"company" : "Samsung",

"date" : ISODate("2014-03-05T22:00:00Z"),

"price" : 1000,

"brand" : "Ultrabook",

}

mongoexport的定义如下:

1

mongoexport --db --collection --query --out

主要的问题是在查询中不能使用ISODate("")对象作为时间的查询条件,必须转换成Date对象。

例如,我们要查找生产日期位于2014-03-09T22:00:00Z 和 2014-03-07T22:00:00Z之间的苹果公司的笔记本(notebook);

mongoexport

--db test --collection notebooks --query '{ company:"Apple", date: {

$lt: ISODate("2014-03-09T22:00:00Z") , $gte:

ISODate("2014-03-07T22:00:00Z")} }' --out example.

1

mongoexport --db test --collection notebooks --query '{ company:"Apple", date: { $lt: ISODate("2014-03-09T22:00:00Z") , $gte: ISODate("2014-03-07T22:00:00Z")} }' --out example.json

将得到以下错误:

ERROR

ERROR: too many positional options

有两种方法可以把ISODate对象转成Date对象,方法如下:

(1)使用mongo shell中的JavaScript脚本;

var a = ISODate('2014-03-10T22:00:00Z');

a.getTime()

1

2

var a = ISODate('2014-03-10T22:00:00Z');

a.getTime()

(2)把 ISODate数据转成毫秒,然后在转成Date对象;

ISODate("2014-03-10T22:00:00Z").valueOf()

现在可以使用正确的Date时间进行查询:

1

mongoexport --db test --collection notebooks --query "{ company:"Apple", date: { $lt: new Date(1394402400000) , $gte: new Date(1394229600000)} }" --out example.jso

最后会在当前文件夹下得到一个json文件,只包含一个文档记录;

{

"_id" : ObjectId("531ce460000000019b9643bd"),

"company" : "Apple",

"date" : ISODate("2014-03-07T22:00:00Z"),

"price" : 2250,

"brand" : "MacbookPro",

}

1

2

3

4

5

6

7

{

"_id" : ObjectId("531ce460000000019b9643bd"),

"company" : "Apple",

"date" : ISODate("2014-03-07T22:00:00Z"),

"price" : 2250,

"brand" : "MacbookPro",

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值