我确实有一个 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/