我有这样的架构
{
    'cr':[
              { key: 'key1' },
              { key: 'key2' }
         ]
}
function addCriteriaKey(id, key, callback) {
    var options = {new: false, select: '_id'};
    if (typeof key === 'string') {
        Model.update({'uid': id}, {'$addToSet': {'cr': {'key': key}}}, options, function (err, data) {
            if (err) callback(err, null);
            else callback(null, data);
        })
    } else if (typeof key == 'object' && (key instanceof Array)) {
        Model.update({'uid': id}, {'$addToSet': {'cr': {'key': {'$each': key}}}}, options, function (err, data) {
            if (err) callback(err, null);
            else callback(null, data);
        })
    }
}
该方法的作用是将key添加到'cr'字段中,如果key是字符串,则直接添加,如果key是字符串数组,则使用'$each'命令将它们全部添加
添加字符串效果很好,添加到字符串数组时出现问题,我希望它可以一个一个添加,但结果不同 例如: addCriteriaKey('id',['111','222', '333'],函数(错误,数据){})
我的预期结果:
{
    'cr':[
              { key: '111' }, { key: '222' }, { key: '333' }              
         ]
}
然而结果是:
{
    'cr':[
              { key: {'$each':{'111','222','333'}} }           
         ]
}
我想知道这是什么问题?