【问题标题】:how to console.log() longitudes and latitudes that are stored in mongoDB via mongoose如何 console.log() 通过 mongoose 存储在 mongoDB 中的经度和纬度
【发布时间】:2020-01-28 00:07:07
【问题描述】:

i wants to fetch lng lat from here.

**

router.get("/", function(req, res) {
  Map.find({}, function(err, doc) {
    if (err) {
      res.send(500, {
        error: err
      });
    }
    res.send(doc);
    doc.map((item,i)=>(
      console.log(item._id),
      console.log(JSON.stringify(item.data)),
      console.log(item.__v)
      ));

  });
});

**

但在这里我得到了 id 和 __v 的值,而不是数据项的值。我也尝试不使用 JSON.strigify(),但再次失败。

【问题讨论】:

  • 请在此处阅读帮助中心的How to ask a good question 以及Writing the perfect question。这个问题包含的细节太少,到目前为止没有显示代表您的努力的代码,没有显示您已经对问题的任何部分进行了任何研究。此外,任何数据或代码都应以文本形式(并适当格式化)直接粘贴到问题中,而不是作为图像链接。
  • 兄弟请点此链接,看图就明白了
  • 这里的工作方式是,您必须创建一个遵循此处指南且清晰明了的问题,以吸引人们帮助您。即使在单击链接之后,我也不清楚您在问什么。您可以轻松地使用“编辑”链接来解决您的问题。
  • 朋友!我只想在控制台中显示 lat 和 lng 值。
  • 如果您要问的只是如何从该数据结构中读取经纬度,那么您为什么不按照指南所说的那样做,并在您的问题中说出来并粘贴数据结构将您的问题作为文本输入?此外,您的问题还说明了在谷歌地图中绘制多边形的其他内容,而不仅仅是在控制台中显示某些内容。我不明白你为什么不花一分钟左右的时间来编辑你的问题以澄清它? Stackoverflow 之所以有效,是因为问题必须是明确的问题。而且,在 cmets 中填写详细信息是不够的。请编辑您的问题。

标签: node.js mongodb mongoose


【解决方案1】:

如果我理解您的问题,您可以正确获取 ._id.__v 属性的值,但您需要 lnglat。这些属性隐藏在两个嵌套数组中。

你有这个:

doc.map((item,i)=>(
  console.log(item._id),
  // console.log(JSON.stringify(item.data)),
  console.log(item.__v)
));

您所说的确实得到了item._iditem.__v。如果是这种情况,那么您必须到达 data 数组内部。例如,您在此屏幕截图中显示的第一个 lng,lat:

应该是:

doc.forEach(item => {
  console.log(item._id),
  console.log(item.__v)
  console.log(item.data[0].paths[0].lng);
  console.log(item.data[0].paths[0].lat);
});

要查看这些数组中的所有值,您必须迭代两个嵌套数组。

doc.forEach(item => {
  console.log(item._id),
  console.log(item.__v)
  item.data.forEach(obj => {
      obj.paths.forEach(data => {
          console.log(data.lat, data.lng);
      });
  });
});

【讨论】:

  • console.log(item.data[0].paths[0].lng); console.log(item.data[0].paths[0].lat);兄弟的问题是,当我尝试上述两行时,我再次收到错误“ throw err; // Unhandled 'error' event ^ TypeError: Cannot read property 'paths' of undefined” 我不知道为什么我会遇到这个错误我已经尝试过这种技术。
  • @MuhammadUsama - 好吧,然后告诉我doc 到底指向什么。你有一些数据的屏幕截图,让我尝试猜测doc 在该屏幕截图中指向的内容。你说你在代码中正确地得到了item._iditem.__v,所以我试图猜测doc 是什么意思。但是,请告诉我 doc 指向的确切内容,以便我提供进一步帮助。我希望您现在可以看到您的问题仍然不清楚。
  • drive.google.com/file/d/1u5Xngt-obugS063vOIE-BZ9bmaN4TEUr/… 现在您可以查看上面的链接以查看输出。也感谢您的耐心等待。我的问题描述不清楚,因为我是 Stackoverflow 上的学生和新人。我希望,我也能在很短的时间内学会这些规则。
  • @MuhammadUsama - 我不明白那张图片是什么。 doc 指的是什么?如果你做console.log(doc),你会得到什么?
  • Conntected To Mongo Database (node:15624) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated GET / 304 7ms GET /javascripts/app.js 304 1ms _id: 5e2c94b0a90b651e444eebe0 __v: 0 GET /maps 304 7ms [链接] drive.google.com/file/d/1u5Xngt-obugS063vOIE-BZ9bmaN4TEUr/…。从上面的输出可以看出,我们只得到了两个值 (i)_id:-------- 和 (ii)__v: 0
【解决方案2】:

**

router.get("/", function(req, res) {
      Map.find({"_id":'place_your_id_here'}, function(err, doc) {
        if (err) {
          res.send(500, {
            error: err
          });
        }
        res.send(doc);
        doc.map((item,i)=>(
          console.log(item._id),
          console.log(JSON.stringify(item.data)),
          console.log(item.__v)
          ));

      });
    });

** 你只需要输入集合的_id,这里没有提到我,那是我的错误,现在Alhamdullilah解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2010-11-16
    • 2011-01-01
    相关资源
    最近更新 更多