我正在python中编写一个脚本来查询MongoDB数据库,以一种可以导入关系数据库的格式解析结果。
数据存储在关联数组中。我可以使用点表示法查询大多数字段,例如$ status.state。
问题:
问题是,$ last_seen ISODate字段在尝试使用点表示法时没有返回值。
# Last seen dot notation does not return a value
"u_updated_timestamp": "$last_seen.date"
这是数据结构:
{
"status" : {
"state" : "up",
},
"addresses" : {
"ipv4" : "192.168.1.1"
},
"last_seen" : ISODate("2016-04-29T14:06:17.441Z")
}
这是我开始使用的代码。所有其他字段都以正确的格式返回。但是,last_seen ISO日期字段根本不返回任何值。要检索值还需要哪些其他步骤?
我尝试了$ dateToString但它没有用(我们正在运行pymongo 2.7)。
computers = db['computer'].aggregate([
{"$project" : {
"u_ipv4": "$addresses.ipv4",
"u_status": "$status.state",
# Last seen dot notation does not return a value
"u_updated_timestamp": "$last_seen.date"
}}
])
我也尝试过简单的$ last_seen但返回键和值,我只需要值。
更新:所需格式灵活。它可以是unix时间戳或mm-dd-yyyy。任何格式都可以接受。主要问题是目前没有使用此查询返回任何日期值。