0
我的模式是这样的:如何用Mongoose更新特定的数组元素?
var FriendSchema = new Schema({
friend_id: String,
gender: String,
meta: {
address: String,
amount: Number
}
}, { _id : false });
var GroupSchema = new Schema({
unique_id: {
type: Number,
required: true,
unique: true
},
friends: [FriendSchema]
});
所以一个Group
包含friends
阵列和friend
有它的一些信息meta
。我想更新符合特定条件的group
中的特定friend
。以下是我已经试过:
groupQuery = {unique_id: someId, 'friends.friend_id': friendNum, 'friends.gender': gender}
groupUpdate = {$set: {'friends.$.meta.address': myAddress, 'friends.$.meta.amount': debt}}
Group.update groupQuery, groupUpdate, (err) ->
什么情况是该组中的最后friend
得到更新。不是我想要的具体的一个。我究竟做错了什么?
可能只是一个错字,但'GroupSchema '使用'朋友',你的代码使用'朋友'。 – JohnnyHK
这是一个错字 - 我修正了它。同一问题 – Shamoon
代码看起来很好,所以如果'friends'的最后一个元素得到更新,那么该元素必须与您的查询匹配。 – JohnnyHK