2015-12-08 88 views
0

以下是數據的JSON:MongoDB字符串到日期?

{ 
    projectName: String, 
    projectDescription: String, 
    users: [ 

    ], 
    projectManager: [ 

    ], 
    teamLead: [ 

    ], 
    createdBy: String, 
    superAdmin: String, 
    createdAt: Date, 
    task: [ 
    { 
     userID: String, 
     name: String, 
     taskName: String, 
     nohrs: Number, 
     description: String, 
     comments: String, 
     date: String, 
     from: String, 
     to: String, 
     lastUpdatedDate: String 
    } 
    ] 
} 

任務的數組包含每個項目的許多任務。每個任務都有一個字符串格式的日期。我需要將每個字符串日期轉換爲ISO日期格式。 我們怎樣才能做到這一點? 我已經試過這樣:

db.projects.find({}).forEach(function(task){ 
    task.date = new Date(task.date); 
    db.collection.save(task);}) 

但這添加一列日期,而不是編輯在任務數組中的日期?

+0

可能的複製](http://stackoverflow.com/questions/32602220/mongo-db-remove-old-data-using-remove-command) – Yogesh

+0

你的日期是怎樣的? – styvane

回答

1

你是真正貼近的解決方案。正確的代碼片段是:

db.projects.find({}).forEach(function(project){ 
    project.task.forEach(function(task){ 
    task.date = new Date(task.date); 
    }); 
    db.projects.save(project); 
}) 

您還需要一個循環在你的代碼:)

0
 db.projects.find({},function(err,data){ 
    //this find query will return the array of documents through which we need to iterate 

    for(var i =0; i<data.length;i++){ 

     //then we want convert the date string into Date we need to iterate task array with in each document. 

     for(var j = 0;j<data[i].task.length;j++){ 
      data[i].task[j].date = new Date(data[i].task[j].date); 

     } 

    } 
     //now save the new data 
    data.save(); 
    }) 
0

好男人這個工作

db.projects.find({}).forEach(function(project){ 
project.task.forEach(function(task){ 
// printjson(task) 
task.date = new Date(task.date); 
    print(task.date) 
db.projects.save(project); 
    })}) 
使用刪除命令[蒙戈DB刪除舊數據的
相關問題