如何从数组中读取特定元素,该元素是来自 mongodb 的车把文件中对象的一部分?

Posted

技术标签:

【中文标题】如何从数组中读取特定元素,该元素是来自 mongodb 的车把文件中对象的一部分?【英文标题】:How to read a particular element from array which is the part of object in handlebar file from mongodb? 【发布时间】:2020-11-20 13:43:12 【问题描述】:

下面是我的 mongo db json 文件。 当在 express 中调用路由 /addTask 时,我想为 .hbs(handle bar) 文件中的每个对象元素从数组“Addtasks”中读取“主题”元素。

"_id" : ObjectId("5f2313cb1351d606046660fd"),
"email" : "mike@g.com",
"name" : "Mike Tyson",
"Addtasks" : [ 
    

        "otherdetails" : "haha great!",
        "website" : "asad.com",
        "keywords" : "article importance, article generation, article quality",
        "words" : 1000,
        "topic" : "How article is generated?",
        "_id" : ObjectId("5f2314011351d606046660ff")
    , 
    

        "otherdetails" : "Not much thanks!",
        "website" : "abcdxyz.co.in",
        "keywords" : "niggas are great, yo whatsup!",
        "words" : 2000,
        "topic" : "whats your name nigga?",
        "_id" : ObjectId("5f23142d1351d60604666101")
    
],

【问题讨论】:

【参考方案1】:

如果你传入你的数据是这样的::

res.render('mytemplate.hbs',  items: jsObject.Addtasks );

那么你的 hbs 可能看起来像这样:

  <ul>
      #each items
          <li>this.topic</li>
      /each
  </ul>

(有点不相关,但是那个 json-file 不是有效的 JSON。JSON 和 javascript 对象不是一回事。)

【讨论】:

【参考方案2】:

您可以使用 .find() 的第二个参数来投影您想要的值。

https://mongoplayground.net/p/LLuM1sd5Raq

db.collection.find(, 
  "Addtasks.topic": 1,
  name: 1, // Add whatever other fields you need as well, remove if not
  email: 1,
)

产量:

[
  
    "Addtasks": [
      
        "topic": "How article is generated?"
      ,
      
        "topic": "whats your name nigga?"
      
    ],
    "_id": ObjectId("5f2313cb1351d606046660fd"),
    "email": "mike@g.com",
    "name": "Mike Tyson"
  
]

【讨论】:

如何将它返回到车把意味着现在如何在车把文件中使用结果?既然这样,我将在 nodejs 端编写 find() 代码。

以上是关于如何从数组中读取特定元素,该元素是来自 mongodb 的车把文件中对象的一部分?的主要内容,如果未能解决你的问题,请参考以下文章

如何从结构类型数组的列中删除特定元素

选择带有restangular或angular的嵌套数组元素

如何从我得到的数组中获取特定的数组元素作为调用 axios.get() 调用的函数的响应 [重复]

从 mongo 数组中删除空元素

从 jsonb 数组包含具有特定属性的元素的表中选择

将数组元素与另一个数组合并,该数组是 mongo 集合的一部分