此Meteor服务器代码假设将对象附加到数组并使用新数组更新集合,如果不存在则更新空数组。
稍后在代码removeFromPendingArr
中被调用
但是mongo shell显示数组的值为1而不是数组[]为空或填充
知道为什么以及如何解决它? THX
'addToPendingArr': function (myObj) {
let results = [];
let pendingArr = Meteor.users.findOne({_id: ab.userIdForAB()}).myArr;
if (typeof pendingArr === 'object') {
results = pendingArr.push(myObj);
Meteor.users.update({_id: ab.userIdForAB()}, {$set: {myArr: results}});
}
return results;
},
'removeFromPendingArr': function (xxx) {
let results = [];
let pendingArr = Meteor.users.findOne({_id: ab.userIdForAB()}).myArr;
if (typeof pendingArr === 'object' && pendingArr.length > 0) {
results = pendingArr.filter(y => y.mark !== xxx);
}
Meteor.users.update({_id: ab.userIdForAB()}, {$set: {myArr: results}});
return results;
},
答案 0 :(得分:1)
为什么不使用Mongo的$ push和$ pull?
console.log(key, String.fromcharcode(key));