2016-10-29 20 views
0
{ 
"_id" : ObjectId("581472c3c65f3a1b3412f147"), 
"name" : "這是一級目錄-----1", 
"englishName" : "zzzzz", 
"stage" : "first", 
"children" : [ 
    ObjectId("581472f1c65f3a1b3412f149"), 
    ObjectId("581472f4c65f3a1b3412f14a") 
], 
"type" : "group", 
"order" : 50, 
"__v" : 0 
} 

我想[1] $pull除去兒童工作,但它不工作。

var _id = req.fields._id; //581472f4c65f3a1b3412f14a 
var parent_id = req.fields.parent; //581472c3c65f3a1b3412f147 
db.Group.update({ _id: parent_id }, { $pull:{children:_id} },function(err,result){ 
        console.log(result); 
        cb(err,result); 
       }) 

我已經嘗試使用{$pull:{children:ObjectId(_id)}}代替{ $pull:{children:_id} },但還是失敗了。

貓鼬模式

var groupSchema=new Schema({ 
    name:String, 
    englishName:String, 
    order:{ 
    type:Number, 
    default:50 
    }, 
    type:{ 
    type:String, 
    default:"group" 
    }, 
    stage:String, 
    children:{ 
    type:Array, 
    default:[] 
    } 
}); 

我的英語很差。請原諒我。

回答

0

我用下面的方法來解決這個問題。

使用時$pushchildren。使用{$push:{children:_id.toString()}}而不是{$push:{children:_id}}。並且它不會影響查詢對象