大家好,我正在做meteor mongo db,我使用findAndModify包
Ips.findAndModify({
//Find the desired document based on specified criteria
query: {
"ipAdr": clientIp,
connections: {
$elemMatch: {
connID: clientConnId
}
}
},
//Update only the elements of the array where the specified criteria matches
update: {
$push: {
'connections': {
vid: result.data.vid,
firstName: result.data.properties.firstname.value,
lastName: result.data.properties.lastname.value
}
}
}); //Ips.findAndModify
所以我找到了我需要的元素,但是我的信息被推送到整个连接数组,但我想将我的信息推送到该特定元素。我该怎么办?我试过了
$push: {
'connections.$': {
vid: result.data.vid,
但它给出了错误。 请帮忙。
答案 0 :(得分:1)
你不需要在这里使用 $ push 运算符,因为它向数组添加了一个新元素,而你需要修改数组中已有的元素,试试 $ set 运算符更新如下:
update: {
$set: {
'connections.$.vid': result.data.vid,
'connections.$.firstName': result.data.properties.firstname.value,
'connections.$.lastName': result.data.properties.lastname.value
}
}
考虑到这种方式,您只会从 $ elemMatch 语句中更改满足条件的数组中的一个元素。