use*_*540 6 arrays mongoose mongodb objectid
我怎么能在这个架构中通过 id 找到图像。我有用户的 id 和我正在寻找的图像的 id。什么是最好的方法来做到这一点,并且在这种情况下所有图像都具有不同的 id,或者它们可能具有相同的 id,因为它们不属于同一个用户?
我的架构如下所示:
var userSchema = new Schema({
  local: {
    email: String,
    password: String
  },
  facebook: {
    id: String,
    token: String,
    email: String,
    name: String
  },
  name: String,
  about: String,
  images: [{
    id: Schema.ObjectId,
    link: String,
    main: Boolean
  }]
});
当您对完整对象感兴趣时,这很简单find:
.find({"facebook.id":"<id>", "images.id":<image-id>})
我认为没有办法减少结果中的图像数组。
要更新图像数组中的单个元素,您可以使用:
.update({"facebook.id":"<id>", "images.id":<image-id>}, {$set : {"images.$.main" :false} } );
| 归档时间: | 
 | 
| 查看次数: | 14743 次 | 
| 最近记录: |