【问题标题】:How to convert mongodb response array from javascript object to JSON string如何将mongodb响应数组从javascript对象转换为JSON字符串
【发布时间】:2017-11-11 10:08:29
【问题描述】:

我编写了一个 javascript API,它根据请求从 mongodb 数据库返回所有数据。但是它发送数据是一个对象数组,我想得到简单的 json 字符串。返回对象的语句是

return db.collection('variants').find().toArray();

我是否需要附加另一个函数,例如 JSON.stringify()?但我认为这适用于单个对象,但不适用于我的情况下的对象数组。

var fetch = require('graphql-fetch');
const API_URL = `http://localhost:4000/graphql`
const query = `
{
  variants{
    VARIANT_ID
    CHROM
  }
}
`
fetch(API_URL)(query).then(data => console.log(data))

【问题讨论】:

  • 不是 JSON,而是 BSON。它是一个 JavaScript 对象,因为您使用的是 JavaScript。当然需要解析。\
  • 在客户端还是服务器端?
  • 你的服务器程序连接到 MongoDB。如果您使用的是快递,则有res.json()。它也是 nodejs 然后.toArray() 需要回调或承诺解决方案。
  • 我正在使用 express 和 setup graphql API。 GraphiQL 窗口中的 API 响应良好,但是当我尝试从客户端获取时出现错误。让我也添加获取代码。可能它会更有意义,但理想情况下我想在服务器上这样做,这样客户端就不会通过它
  • 只是字符串化对象...

标签: javascript json mongodb bson


【解决方案1】:

好的,我找到了解决方案。我只需要JSON.stringify(data)

var fetch = require('graphql-fetch');
const API_URL = `http://localhost:4000/graphql`
const query = `
{
  variants{
    VARIANT_ID
    CHROM
  }
}
`
fetch(API_URL)(query).then(data => console.log(JSON.stringify(data)))

【讨论】:

  • 有时...最简单的答案就是你已经知道的那个;)
【解决方案2】:

下面的sn-p会正常工作。

fetch('/users.json')
.then(function(response) {
    return response.json()
}).then(function(json) {
    console.log('parsed json', json)
}).catch(function(ex) {
    console.log('parsing failed', ex)
})

【讨论】:

    【解决方案3】:

    您可以使用 mongoexport。

    为了执行此操作,您需要对数据库的读取权限。

    例如:mongoexport --db database [--collection traffic] --out file.json

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 2016-10-09
      • 2017-01-17
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      相关资源
      最近更新 更多