我已创建并想现在导入虚拟集合。 在每个项目中的一个字段是“创造”和“更新”的领域。 我可以把什么源/ JSON文件,这样的MongoDB将使用当前日期和时间作为进口的价值?
这不会工作
"created" : Date()
我已创建并想现在导入虚拟集合。 在每个项目中的一个字段是“创造”和“更新”的领域。 我可以把什么源/ JSON文件,这样的MongoDB将使用当前日期和时间作为进口的价值?
这不会工作
"created" : Date()
mongoimport
旨在用于导入在CSV,TSV或JSON格式存在的数据的数据。 如果要插入新的领域(如created
时间戳),你将不得不为他们设定的值。
例如,如果你想设定的created
时间戳到当前的时间,你可以得到命令行(这将是自纪元秒)Unix时间戳:
$ date +%s
1349960286
的JSON <date>
表示该mongoimport
预计是表示从epoch毫秒的64位带符号整数。 您需要在1000乘以unixtime秒值,并在您的JSON文件:
{ "created": Date(1349960286000) }
另一种方法是,他们已经插入后所创建的时间戳添加到文件。
例如:
db.mycoll.update(
{created: { $exists : false }}, // Query criteria
{ $set : { created: new Date() }}, // Add 'created' timestamp
false, // upsert
true // update all matching documents
)
作为Stennie正确地指出,你不能只是这样做mongoimport
或mongorestore
:他们只是恢复您以前转储的数据。 这样做的正确的方法是恢复数据,然后做出对恢复的数据更新。
随着新蒙戈2.6,你可以做到这一点很容易地使用$的currentdate操作,这是为了更新时间当前时间戳。
在你的情况,你需要这样的东西
db.users.update(
{},
{
$currentDate: {
created: true,
updated: true
},
}
)