Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON插入MongoDB自动转换字符串中的日期_Javascript_Json_Mongodb_Object - Fatal编程技术网

Javascript 将JSON插入MongoDB自动转换字符串中的日期

Javascript 将JSON插入MongoDB自动转换字符串中的日期,javascript,json,mongodb,object,Javascript,Json,Mongodb,Object,我有一些对象使用键updated_at和created_at,它们具有字符串时间戳,如2012-08-29T16:04:34-04:00。我正在把它插入MongoDB。需要注意的是,每个对象都可以在处更新和在处创建不同数量的实例(它们位于中的数组中)。是否有任何代码可用于搜索数组中的updated\u at和created\u at并将值替换为$。created\u at=新日期($。created\u at) 到 警告: 对象存储一个字符串,其中包含newdate…ammentment-要存储

我有一些对象使用键
updated_at
created_at
,它们具有字符串时间戳,如
2012-08-29T16:04:34-04:00
。我正在把它插入MongoDB。需要注意的是,每个对象都可以在处更新和在处创建不同数量的实例(它们位于中的数组中)。是否有任何代码可用于搜索数组中的
updated\u at
created\u at
并将值替换为
$。created\u at=新日期($。created\u at)

警告:

对象存储一个字符串,其中包含
newdate…
ammentment-要存储操作结果,需要将修改行调整为

x.logs[y].created_at = new Date( x.logs[y].created_at )
警告:

对象存储一个字符串,其中包含
newdate…
ammentment-要存储操作结果,需要将修改行调整为

x.logs[y].created_at = new Date( x.logs[y].created_at )

这将不会在处获得
x.created\u和
处获得
x.updated\u。这只是一个简单的例子,真正的例子有更多的嵌套选项。我想要一种更面向搜索的东西。假设你有一个无限嵌套的对象,你想替换所有在
处创建的
和在
处更新的
对象。这不会得到在
处创建的
x.created\u和在
处更新的
x.updated\u。这只是一个简单的例子,真正的例子有更多的嵌套选项。我想要一种更面向搜索的东西。假设您有一个无限嵌套的对象,并且希望替换在
处创建的所有
对象和在
处更新的所有
对象。
// store your data object in x
x = {
    "name":"thomas",
    "created_at":"2012-08-29T16:04:34-04:00",
    "updated_at":"2012-08-29T16:04:34-04:00",
    "logs":[
        {
            "something":"something",
            "created_at":"2012-08-29T16:04:34-04:00",
        },
        {
            "something":"something",
            "created_at":"2012-08-29T16:04:34-04:00",
        },
    ]
}

// loop through each element of the logs array
for(y in x.logs){
    // modify the `created_at` value of the y-th element
    // by wrapping with the desired string
    x.logs[y].created_at = "new Date(" + x.logs[y].created_at + ")"
}

// check the final format of the object
console.dir(x)
x.logs[y].created_at = new Date( x.logs[y].created_at )
// store your data object in x
x = {
    "name":"thomas",
    "created_at":"2012-08-29T16:04:34-04:00",
    "updated_at":"2012-08-29T16:04:34-04:00",
    "logs":[
        {
            "something":"something",
            "created_at":"2012-08-29T16:04:34-04:00",
        },
        {
            "something":"something",
            "created_at":"2012-08-29T16:04:34-04:00",
        },
    ]
}

// create a traversal function to recurse
function traverse(o) {
    // loop through object
    for (i in o) {
        // if it is a matched key (current regex matches created_at or updated_at)
        // parse the item as a date, and re-store object
        if(i.match(/(cre|upd)ated_at/)){
            o[i] = new Date(o[i])
        }
        // if the key we are looking at is an object, then recurse!
        if (typeof(o[i])=="object") {
            traverse(o[i])
        }
    }
}

// fire it up!
traverse(x)

// check the results
console.dir(x)