【问题标题】:how to insert the current date in mongoose using nodejs如何使用nodejs在猫鼬中插入当前日期
【发布时间】:2018-12-26 19:33:32
【问题描述】:

我正在尝试为每个用户插入当前日期,但出现如下错误:

投掷者; // 未处理的“错误”事件 ^

TypeError: callback.apply 不是一个函数 在 F:\epaper\sakshi\epaper\node_modules\mongoose\lib\model.js:3954:16 在 process.nextTick (F:\epaper\sakshi\epaper\node_modules\mongoose\lib\query.js:2022:28) 在 _combinedTickCallback (内部/进程/next_tick.js:131:7) 在 process._tickDomainCallback (internal/process/next_tick.js:218:9)

谁能帮帮我?

型号:

const ClipsSchema = new mongoose.Schema({
   x1:Number,
   x2:Number,
   y1:Number,
   y2:Number,
   height:Number,
   width:Number
});

const UserSchema = new mongoose.Schema({
   dist_id : Number,
   path: [{body:String,date : Date}],
   date: { type: Date, default: Date.now },
   clips : [ClipsSchema]  
});

解析器:

const x1 = param.x1;
         console.log(x1)
       const  x2 = param.x2;
        const y1 = param.y1;
        const y2 = param.y2;
         const height = param.height;
        const width = param.width;
        const data={"x1":x1,"x2":x2,"y1":y1,"y2":y2,"height":height,"width":width};
        console.log(data)
        var date = new Date();
        //var bongu = await Urls({date : ddd}).save()
        //console.log(bongu) 

                //const details= await Urls.findOneAndUpdate({dist_id:dist_id}, {clips:[{x1:x1,x2:x2,y1:y1,y2:y2,height:height,width:width}]});
        const details= await Urls.findOneAndUpdate({dist_id:dist_id},{$push: {clips:data} },{$set: {date : date }},{ upsert: true });
        console.log(details)
      // const update =  Urls.findOneAndUpdate({_id:details._id},{$set : {date:ddd}})
        //const sss = await Urls.find({_id : details._id})
        //console.log(sss)
        var status = {};
        status.status="User Created Successfully";
        return status;

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    猫鼬findOneAndUpdate accepts 4 arguments:

    [条件] «对象»

    [更新] «对象»

    [options] «Object» 可选参见 Query.prototype.setOptions()

    [options.lean] «Object» 如果为真,猫鼬将返回文档 作为一个普通的 JavaScript 对象而不是一个猫鼬文档。看 Query.lean().

    [回调] «函数»

    运算符应作为单个对象传递,但它们是不同的对象,选项参数被视为第四个参数(回调)。由于它不是函数,所以调用时会抛出错误。

    应该是这样的:

    Urls.findOneAndUpdate(
      {dist_id:dist_id},
      {$push: {clips:data}, $set: {date : date }},
      { upsert: true }
    );
    

    【讨论】:

    • 很高兴它有帮助。考虑将答案标记为已接受,这可能有助于其他有类似问题的用户。
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2015-09-02
    • 2017-04-01
    • 2017-02-25
    • 1970-01-01
    • 2020-02-16
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多