我正在用气象仪开发一个应用程序。我有一个集合初始化为:
Places=new Mongo.Collection('places');其中我还想存储相应位置的图像。我已经将collectionFS包添加到我的项目中。下面的代码为图像创建一个单独的集合:
image=new FS.Collection("images", {
stores: [new FS.Store.FileSystem("images")]
});然而,我不明白我应该如何将这组图像与“Place”中的相关文档联系起来。或者简单地在我的蒙戈收藏中插入一个图像。
发布于 2015-11-15 22:38:24
这是Meteor/Mongo中的一个常见情况,您希望将两个集合关联起来。蒙戈博士在这方面写得很好。
假设每个地方都有很多图像。您可以在图像中引用该位置,也可以引用来自该位置的许多图像。
当您在collectionFS中创建图像时(忽略了细节),请确保保留图像的_id:
imgId = image.insert();如果您想要图像,请参考所在的位置,然后可以使用以下内容更新图像:
image.update({ _id: imgId },{ $set: { placeId: myPlace._id }});或者,您可以将$push imgId放在您所在位置的图像数组上:
Places.update({ _id: myPlace._id },{ $push: { imageArray: imgId }});第二种参考方式更灵活一些,因为相同的图像可以属于多个地方(多到多)。这对嵌套的地方很好,例如,时代广场的图片既是时代广场的图片,也是纽约市的图片等等。
无论哪种方式,您都可以使用为方便发布相关集合而设计的image包和Places集合加入reywood:出版-合成集合。
还请注意,在Meteor中命名集合的通用约定是第一个字母、大写和复数形式。即图像代替图像。这是因为集合是Meteor中的全局变量,集合包含许多以其命名的东西。
https://stackoverflow.com/questions/33724787
复制相似问题