我需要使用mongoose从集合中的所有元素中删除子字段,我在几个星期前为此创建了一个JS脚本,据我所知,它现在已经工作了,但现在看起来已经不再适用了。我基本上做的是:
Collection.find({'supField.myfield': {$exists: true}})
.then(function(dataList){
var dataId = dataList[0]._id;
// some other stuff here
return Collection.update({_id: dataId}, {'$unset' : {'supField.myfield':1}})
})
.then(function(updated){
console.log(updated) // dumps 0
})
如果需要mongoose我设置调试标志(require('mongoose').set('debug', true)
),它不会转储任何更新查询。
这种行为很奇怪,我担心它是由某些更新引起的,但它也可能是我身上的一些错误。
[编辑]显然是一个问题与我正在尝试更新子字段而不是正常字段的事实有关。但我仍然没有证据证明这是一个问题