2011-06-11 2 views
4

이것은 정말 어리석은 질문 일지 모르지만 저는 MongoDB를 처음 접했습니다. 그런 다음mongoDB에서 문서 삭제

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 

... 

내가 어떻게 내가 MongoDB의 문서를 파괴 할 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">] 

와 다음을 수행 : 나는 독립 실행 형 루비 클래스를 만들었습니다? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

미안 내가 더 도움이 될 수 없었다. –

+0

'Twit.find ('4df2d4a0c251b2754c000001'). destroy' 그리고'Twit.all'이라면 어떻게됩니까? –

+0

@mu, 항목이 남아있는 것 같습니다. DB에 저장된 문서를 제거 할 수있는 유일한 방법은 전체 데이터베이스를 삭제하는 것입니다. 내 시스템이 설정되어 문서가 삭제되는 것을 방지 할 수있는 방법이 있습니까? – Intentss

답변

0

감사합니다. 이 문제를 가지고 다른 사람을 위해, 나는 내 경우는 /usr/local/mongodb/bin에 이진 파일을 설치 나는가 export PATH=/usr/local/mongodb/bin:$PATH을 추가 할 필요 등의 $PATH 변수

에 MongoDB를 바이너리 파일의 위치를 ​​추가하는 것을 잊었다 때문입니다 생각 내 ~/.bash_profile

0

망가 루비에 대해 알고 있지만, 명령 줄 그것이 쉘 :이 문제에 대한 모든 도움

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

"name"이 비어있는 모든 문서를 삭제하겠다고 상상해보십시오. 그래서 여기에 대한 코드입니다 :

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

사용이 코드는 ID로 문서를 삭제 :

collection.remove({"_id" => BSON::ObjectId("4df2d4a0c251b2754c000001")}) 
관련 문제