2
我有這樣 模式架構
{
'cr':[
{ key: 'key1', value:['value1','value2','value3'] },
{ key: 'key2', value:['value4','value5','value6'] }
]
}
function addCriteriaKey(id,key,callback){
var options = { new: false ,select:'_id'};
Model.update({'uid':id},{'$addToSet':{'cr':{'key':key}}},options,function(err,data){
if(err) callback(err,null);
else callback(null,data);
})
}
function addCriterialValueToKey(id,key,value,callback){
var options = { new: false ,select:'_id'};
Model.update({'uid':id,'cr.key':key},{'$addToSet':{'cr.$.val':value}},options,function(err,data){
if(err) callback(err,null);
else callback(null,data);
})
}
所以這裏是我的兩個方法來添加一個鍵,添加值,他們所有的作品,但是數據庫有一個現有的密鑰,但我添加了一個額外的密鑰,$ addToSet不再工作。
例如 當我這樣做:
1. addCriteriaKey( 'ID', 'ABC',功能(ERR,數據){})
2. addCriterialValueToKey( 'ID', 'ABC', '111',功能(ERR,數據){})
數據變得像
{
'cr':[
{ key: 'abc', value:['111'] }
]
}
但是當我再次添加鍵'abc'時。 1. addCriteriaKey( '身份證', 'ABC',函數(ERR,數據){})
數據變得像
{
'cr':[
{ key: 'abc', value:['111'] },
{ key: 'abc' }
]
}
似乎$ addToSet不工作了,我應該做什麼來防止這種情況?
謝謝,Shreyance,這有助於很多 – user824624
@ user824624如果解決了您的目的,您可以接受答案。謝謝:) –