這個問題在做數據結構的時候經常用到,剛開始沒怎么留意,因為我的數組都只是單元素文檔:只有一個ObjectId,這樣用pull操作完全沒有問題,但后來用對象作為了數據的內容,就是數組內嵌的對象,這時候用pull就是各種不生效。發現Mongodb對數組內對象的get和pull使用的書寫格式不一致。下面我列出可以使用的書寫方式:
先列出mongodb的數據結構
{ "_id" : ObjectId, "Uid" : ObjectId, "Visit" : Visit[16] }
其中Visit為對象:
///訪客id ObjectId VId; ///訪問時間 DateTime Time;
則刪除數組內某個Vid的寫法為(我的客戶端是:samus):
MongoDbHelper.Update<FriendTopicVisit>("FriendTopicVisit", new Document("$pull", new Document("Visit",new Document("Vid",visit.Vid))), new Document("_id", id));
方法不復雜,但不知道方法再去找方法也確實挺費時間的。