【问题标题】:Mongodb error: data.includes is not a functionMongodb 错误:data.includes 不是函数
【发布时间】:2021-10-08 18:37:49
【问题描述】:

我正在运行一个 js 脚本,用于在 txt 文件中识别和写入具有特定日期格式(在本例中为 YYYY-mm-dd)的字段值。单个字段甚至一个子字段(例如“Status.dateTime”)一切都进展顺利,我写道:var data = ({'Status.dateTime':{$exists:true}) 并且工作得很好。

问题始于以下情况,其中我有一个字段、一个数组“0”和该数组的一个子字段。在这种情况下如何声明变量并继续?

db.ato.find({'Area.0.Date':{$exists:true})
   .projection({})
   .sort({_id:-1})
   //.limit(1000)
   .forEach(function(doc) {
       const fs = require('fs')
       var data = ({'Area.0.Date':{$exists:true})
       if(data != null && !data.includes("/") && data != "" && data.indexOf("-") == 4) {
            //print(doc._id + " " + data)
            fs.appendFile('C:/Users/victo/Desktop/output_query_YYYY-mm-dd.txt', doc._id + " " + data + "\n", (err) => {
            if (err) throw err;
            })
       }
    })
    

【问题讨论】:

    标签: mongodb find include var


    【解决方案1】:

    在 forEach MongoDb 内部使用JavaScript。所以函数里面的doc就是你的mongodb文档。

    为了从文档中 Area 数组的第一个元素中获取日期,您可以使用 JavaScript 获取它。

    var data = doc.Area[0].Date
    

    为了让事情更直观,您可以使用

    print(doc)
    

    在 forEach 中查看 JavaScript 对象

    【讨论】:

    • 是的,成功了!在 MongoDB 结构中我可以使用“Area.0.Date”,但在 JS 部分(在“forEach”之后),结构是“Area[0].Date”
    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2013-01-04
    相关资源
    最近更新 更多