Skip to content

Instantly share code, notes, and snippets.

# MongoMapper "embedded document delete" plugin
# By Peter Cooper
#
# Got embedded documents you want to delete? You can delete them as if the
# embedded document collection were an array, but then there's no way to get
# a callback (as far as I could tell). This plugin gives you a call back
# (if you want it) and gives a nicer syntax to deleting embedded docs.
#
# Example:
#
require 'rubygems'
require 'mongo_mapper'
MongoMapper.connection = Mongo::Connection.new('localhost',27017)
MongoMapper.database = "test"
class Word
include MongoMapper::Document
key :content, String
key :translation_ids, Array
require 'rubygems'
require 'mongo_mapper'
MongoMapper.connection = Mongo::Connection.new('localhost',27017)
MongoMapper.database = "test"
class Word
include MongoMapper::Document
key :content, String
many :translations do
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
D, [2010-05-07T19:58:57.972048 #549] DEBUG -- : MONGODB admin['$cmd'].find({:ismaster=>1}, {}).limit(-1)
D, [2010-05-07T19:58:58.007733 #549] DEBUG -- : MONGODB test['$cmd'].find({:getnonce=>1}, {}).limit(-1)
D, [2010-05-07T19:58:58.128017 #549] DEBUG -- : MONGODB test['$cmd'].find({"authenticate"=>1, "user"=>"test", "nonce"=>"8eb2e9dda49a5216", "key"=>"553c88a3752d52866524da54ffd5ba1a"}, {}).limit(-1)
D, [2010-05-07T19:58:58.163331 #549] DEBUG -- : MONGODB test['fs.files'].remove({})
D, [2010-05-07T19:58:58.163742 #549] DEBUG -- : MONGODB test['fs.chunks'].remove({})
D, [2010-05-07T19:58:58.164106 #549] DEBUG -- : MONGODB test['system.indexes'].insert([{:unique=>true, :ns=>"test.fs.chunks", :key=>{"files_id"=>1, "n"=>1}, :name=>"files_id_1_n_1"}])
D, [2010-05-07T19:59:15.839098 #549] DEBUG -- : MONGODB test['fs.chunks'].insert([{"_id"=>$oid4be4630337a31c0225000002, "n"=>0, "files_id"=>$oid4be4630337a31c0225000001, "data"=><BSON::Binary:70357