mongodb - React 组件迭代/循环 Mongo 对象的属性

标签 mongodb reactjs mongodb-query

我确实有一个 Mongo collection ,它存储带有预定义图像“槽”的相册,如果有办法循环遍历集合的属性以便在其中显示图像,我会感到有点卡住分隔的 div。

我确实使用了这段代码来映射专辑封面,效果很好:

albums() {
  return Albums.find().fetch();
}

{this.albums().map( (album) => {
  return <div key={album._id}><img src={album.cover} /></div>
 })}

但现在我请你帮忙,是否可以循环遍历 photoOne、photoTwo 等...并跳过/不显示数据(如果数据为空,例如 photoThree 中的情况)。

{
    "_id" : "CHMHbNWWwZGaLGvB6",
    "title" : "Text",
    "cover" : "link",
    "createdAt" : date,
    "photoOne" : {
        "titleOne" : "Text",
        "coverOne" : "link"
    }
    "photoTwo" : {
        "titleTwo" : "Text",
        "coverTwo" : "link"
    }
    "photoThree" : {
        "titleThree" : "",
        "coverThree" : ""
    }
}

最佳答案

我不是 Mongo 用户,但在 map 函数中您可以检查现有值并在那里处理它。像这样的东西(不过肯定有一种更干净的方法):

   this.albums().map( (album) => {
       for (key in album){
         if (key.startsWith('photo')){
           var title = Object.keys(album[key])[0];
           if (album[key][title].length != 0){
             console.log("Can use: " + Object.keys(album[key])[0])
           }
         }
       }
   })

结果:

Can Use This: titleOne
Can Use This: titleTwo

希望有所帮助,但似乎使用 photoOne、photoTwo 来保存照片,您限制了要使用的照片数量,并且需要使用 Object.keys 来获取值(无需专门使用 album.photoOne、album) .photoTwo 等

如果相册照片存储在嵌入式文档中,您可以只包含存在的照片和标题,而不必检查空的照片和标题。您只需循环浏览现有的照片......如果这有意义的话。

关于mongodb - React 组件迭代/循环 Mongo 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38881464/

相关文章:

python - 使用多个 ObjectId 在 Pymongo 中批量更新

javascript - MongoDB 使用 Async.js 与 $in 保持顺序

javascript - 处理 Redux 中的大量文本输入更改

javascript - 在 React 中编辑多个输入字段

Mongodb 查询用于计算所有文档中的不同值

mongodb - 我如何在 Mongo 上每天和每小时对数据进行分组?

javascript - Mongo/Mongoose快速更新导致数据丢失

c# - Azure 上的 MongoDB : replSet can't get local. system.replset 配置

javascript - React-Router - 在路由数组映射外使用 <Switch> 时出错

java - MongoDB Java API - 如何将示例聚合与查找查询结合起来?