【问题标题】:MongoDB Projection Query Output toArray in Javascript/Node.jsJavascript/Node.js 中的 MongoDB 投影查询输出 toArray
【发布时间】:2021-02-18 17:15:06
【问题描述】:

我正在使用带有投影的查询来仅检索 MongoDB 集合中的特定字段。是否需要将此类查询的结果输出到数组?如果没有转换为数组,我找不到任何工作示例。

 db.collection("collection").find({}, { projection: { Name : 1, Price : 1 } }).toArray( (err, result) => {
   if (result) {
     console.log(result)
   }
 })

但是,通过将结果输出到数组,我获得了以下格式的结果(1 数组中的 JSON 格式输出):

[ {key1:value1, key2:value1}, {key1:value2, key2:value2}, ...]

我希望将结果输出为 JSON。

【问题讨论】:

  • const result = db.collection("collection").find({}, { projection: { Name : 1, Price : 1 } }) 不是您要查找的格式吗?

标签: javascript node.js json mongodb


【解决方案1】:

您可以遍历数组中的每个元素并单独打印它们。一种方法是使用forEach。它看起来像这样:

db.collection("collection").find({}, { projection: { Name : 1, Price : 1 } }).toArray( (err, result) => {
   if (result) {
     result.forEach(doc => console.log(doc))
   }
 })

【讨论】:

  • 但他需要超过 1 个文档
  • 也许我因为这部分而误解了:a JSON formatted output within an array of 1。 @Minsky您是否尝试打印没有方括号的每个文档? @JF0001
  • 这不是很精确 tbh :-)
  • 是的,我希望输出的结果不带方括号。是的,我需要多个文档,因此 findOne 无法使用,
  • 谢谢蒙哥马利瓦茨。但是,我想将结果发送到前端,而不是在后端使用它,这解释了为什么我希望结果为 JSON 格式,不带方括号。我很难相信这可以用 findOne 函数完成,但不能用 find() 函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多