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
}]
});
Run Code Online (Sandbox Code Playgroud)
当您对完整对象感兴趣时,这很简单find:
.find({"facebook.id":"<id>", "images.id":<image-id>})
Run Code Online (Sandbox Code Playgroud)
我认为没有办法减少结果中的图像数组。
要更新图像数组中的单个元素,您可以使用:
.update({"facebook.id":"<id>", "images.id":<image-id>}, {$set : {"images.$.main" :false} } );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14743 次 |
| 最近记录: |