【问题标题】:Node Api MongoDB updating date as stringNode Api MongoDB 将日期更新为字符串
【发布时间】:2020-06-29 08:18:12
【问题描述】:

我有一个与 MongoDB 安装通信的 Node API。 MongoDB 节点 api ("mongodb": "^3.5.9") 坚持在更新到数据库之前将日期对象转换为字符串。有人可以帮忙吗?

app.post("/api/updateDocument",auth,(req,res) => {
  const collection = req.body.Collection;
  incomingmap = req.body.inComingMap
  const searchval = req.body.searchVal;
  const searchvar = req.body.searchVar;
  let findargs = {}

   var MongoClient = require('mongodb').MongoClient;
  var url = "mongodb://...";  
   MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true },function(err,db) {
     if (err) throw err;
     var dbo =  db.db();
     var coll = dbo.collection(collection);

      coll.find({}).toArray(function(err,data) {
        data.forEach((item) => {
          if (item[searchvar] == searchval) {       
            
            for (let key in incomingmap) {
              value=incomingmap[key]
              console.log(key + " : " + value);
              try {
                da=Date.parse(value);
                //incomingmap[key]=da.toIs;
                coll.updateOne({_id:item._id},{$set: {key:da}},function() {})
              } catch{
                //coll.updateOne({_id:item._id},{$set: {key: value}},function() {})
              }
            }
            
            return  res.json({message:searchval+' updated.'})
          } else {
            setTimeout(() => {
              res.end(`${searchval} could not be found.`)
         }, 1000)
           }         
        })
      })

     
   })
})   

预期结果

“校准”:ISODate("2021-11-07T11:23:01.306Z"),

实际结果

“校准”:“2021-11-07T01:00:00.000Z”,

【问题讨论】:

  • da=new Date(value);**

标签: node.js json mongodb api


【解决方案1】:

我编写了一个新函数来解析日期并将它们存储回 inComingMap

 for (let key in incomingmap) {
    value=incomingmap[key]
    console.log(key + ": " + value);
    try 
    {
      da=new Date(value);
      incomingmap[key]=da;
      console.log(key + " = " + value +" is a date "+da);
      map[key]=da
    }
    catch {
      map[key]=value
      console.log("K"+key + " V" + value );
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2023-04-05
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多