Удалить документ из mongoDB - PullRequest
4 голосов
/ 11 июня 2011

Это может быть действительно глупый вопрос, но я новичок в MongoDB, так что терпите меня. Я создал отдельный класс ruby:

require 'rubygems'
require 'mongo'

require 'bson'
require 'mongo_mapper'

MongoMapper.database = "testing"

class Twit
  include MongoMapper::Document

  key :id,          Integer, :unique => true
  key :screen_name, String,  :unique => true

...

Затем я делаю следующее с irb

>> twit = Twit.all.first
 => #<Twit _id: BSON::ObjectId('4df2d4a0c251b2754c000001'), id: 21070755, screen_name: "bguestSB"> 
>> twit.destroy
 => true 
>> Twit.all
 => [#<Twit _id: BSON::ObjectId('4df2d4a0c251b2754c000001'), id: 21070755, screen_name: "bguestSB">] 

Так как мне уничтожить документы в MongoDB? Что я делаю не так?

Ответы [ 4 ]

4 голосов
/ 11 октября 2011

Представьте, что вы хотите удалить весь документ с пустым полем «имя».Вот код для этого:

require 'rubygems'
require 'mongo'

db = Mongo::Connection.new("localhost").db("db_name")
coll = db.collection("coll_name")

coll.find({:name => ""}).each do |empty_doc|
  coll.remove(empty_doc)
end
0 голосов
/ 03 октября 2014

Используйте этот код для удаления документа по идентификатору:

collection.remove({"_id" => BSON::ObjectId("4df2d4a0c251b2754c000001")})
0 голосов
/ 16 июня 2011

Спасибо за помощь в этом вопросе.Для всех, у кого есть эта проблема, я полагаю, что это потому, что я забыл добавить расположение двоичных файлов mongodb в переменную $PATH

В моем случае двоичные файлы были установлены в /usr/local/mongodb/bin как таковыеМне нужно было добавить export PATH=/usr/local/mongodb/bin:$PATH к моему ~/.bash_profile

0 голосов
/ 11 июня 2011

Не знаю о ruby, но в командной строке это:

db.Twit.remove({_id: '4df2d4a0c251b2754c000001'});
...