5
在MongoDB中更新修改的語義,更新修改未設置工作如下:
考慮一個蒙戈DB數據庫分貝與集合用戶。用戶包含文檔,格式如下:
//Document for a user with username: joe
{
"_id" : ObjectId("4df5b9cf9f9a92b1584fff16"),
"relationships" : {
"enemies" : 2,
"friends" : 33,
"terminated" : "many"
},
"username" : "joe"
}
如果我想刪除已終止的密鑰,我有如下指定$未設置更新修改:
>db.users.update({"username":"joe"},{"$unset":{"relationships.terminated": "many"}});
我的問題是,爲什麼我必須指定整個密鑰值對爲$未設置工作,而不是簡單地規定:
>db.users.update({"username":"joe"},{"$unset":{"relationships.terminated"}});
Mon Jun 13 13:25:57 SyntaxError: missing : after property id (shell):1
爲什麼不呢?
編輯:
如果順便$未設置是指定整個鍵值對,按照JSON規範,或加上「1」的值來聲明,爲什麼不能」 t殼牌自己做「1」替代?爲什麼不提供這樣的功能?提供這種支持有沒有缺陷?
感謝,這是有益的 – DhruvPathak 2011-06-13 08:06:55
爲什麼不'db.users.update({「用戶名」:「喬「},{」$ unset「:[」relationships.terminated「]});'? – 2015-08-12 17:04:40