2011-02-08 22 views
99

yılında _ID tarafından kaldırılsın mı? İşte benim koleksiyonum: Ada göre ÇıkarmaMongoDB konsolunda MongoDB konsolda

db.test_users.remove({"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}}); 
db.test_users.remove({"_id":{"$oid":"4d513345cc9374271b02ec6c"}}); 
db.test_users.remove({"_id":"4d512b45cc9374271b02ec4f"}); 
db.test_users.remove({"_id":new ObjectId("4d512b45cc9374271b02ec4f")}); 

çalışır:

db.test_users.remove({"name":"Gazza"}); 

Bu tarayıcıda olup burada

[ 
    { 
    "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" }, 
    "name" : "Gazza" 
    }, 
    { 
    "_id" : { "$oid" : "4d513345cc9374271b02ec6c" }, 
    "name" : "Dave", 
    "adminOf" : { }, 
    "email" : "[email protected]" 
    } 
] 

Ve işe yaramaz Denedim komutlardır herhangi bir fark

Teşekkür

0 yaparsa mongodb.org de üzerinde kabuk
+1

Birilerine cevap vermeyi düşünmelisiniz. – nottinhill

+1

Gerçekten birine cevap vermelisin. Nic Cottrell –

+0

öneririm Çözümlerin bir araya gelinceye kadar benim için hiçbiri işe yaramadı: db.test_users.remove ({"_id": '4d512b45cc9374271b02ec4f'}, function (err, data) {}); – rttmax

cevap

11

Eh, _ID sizin örnekte bir nesnedir, böylece sadece bu

Edit çalışmalıdır Nesneyi

'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})' 

geçmesi gerekiyor: o derlenmiş sağlamak için parantez sondaki eklendi.

+0

Bunu denedim de kaydı kaldıramadı: db.test_users.remove ({"_id": {"$ oid": "4d513345cc9374271b02ec6c"}}); ps: bu –

+0

gösterilecek soruyu güncelledi Sorunuzu denediğinizi söylediniz: db.test_users.remove ({"_id": {"$ oid": new ObjectId ("4d512b45cc9374271b02ec4f")}}); – Dmitri

+0

Evet, şu anda soruyu güncelledim teşekkürler, ikisini de denedim ve ne işe yaramadı. Belki de bu bir alt özellikte silemeyeceğiniz içindir. –

15

cevap mongodb.org adresindeki web konsolu/kabuk farklı değil ben bunu beklendiği gibi davranır olmasıdır. Evde kurulu bir sürüm sorunsuz bir şekilde çalıştı; oto _ID web kabuk üzerinde böyle kurtarıldı oluşturulan:

"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" }, 

aynı belge evde kurulum ve otomatik _ID böyle kurtarıldı oluşturulan:

"_id" : ObjectId("4d5192665777000000005490") 

Sorgular sorun olmadan ikincisi karşı çalıştı .

+0

BSON belgesinde farklı şekilde kaydedildiklerinden emin misiniz? Bu farklılıklar, müşterinin çıktıyı farklı şekilde biçimlendirmesi gibi görünüyor. –

4

Kendimi bu çarptı ettik ve bu varyasyon benim için çalıştı:

db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")}) 
202

çok yakın. Bu çalışacaktır:

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")}); 

yani oturum objectId için yeni gerekmez.

+4

, ayrıca _id db.test_users.remove ({_id: ObjectId ("4d512b45cc9374271b02ec4f")}); – alfonsodev

+0

Bunu denedim: TimeAndSpace.remove ({"_id": ObjectId ("8Bd2dZ778LXejYNrL")}); ... ve "Uncaught ReferenceError: ObjectId, adresinde tanımlı değil: 2: 13" –

+0

@BClay Nesne kimliği, onaltılık giriş (belki de küçük harf) bekler, böylece X, Z karakterleri diğerlerinde başarısız olur. –

15

denedim. Bu benim için iyi çalışıyor.

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")}); 
+6

@Nic Cottrell answer'den farklı nedir? – Sadikhasan

1

Çözüm ve Örnek:

1- C: Henüz herhangi bir veritabanına bağlı olmadığınızdan> Mongo (henüz komutu yok \ MongoDB \ Sunucusu 3.2 \ bin \, sadece bağlı veritabanı sunucusu mongodb). 4-

db.Collection.remove({"_id": ObjectId("5694a3590f6d451c1500002e")}, 1); WriteResult({ "nRemoved" : 1 })

use test_database switched to db test_database

3-

show dbs analytics_database 0.000GB local 0.000GB test_database 0.000GB

2-

artık ({ "nRemoved": 1}) WriteResult bakınız 1 değil 0'dır.

Bitti.

6

Kimlikler listesiyle kaldırmak isterseniz, bu özellik harikadır.

db.CollectionName.remove({ 
    "_id": { 
     $in: [ 
      ObjectId("0930292929292929292929"), 
      ObjectId("0920292929292929292929") 
     ] 
    } 
}) 
3

birinci MongoDB Nesne Kimliği = gerektirir (mongodb) .ObjectID gelen NesneKimliği fonksiyonu olsun;

o zaman silme fonksiyonu

"_ID" ile _ID çağırabilirsiniz: objectId ("4d5192665777000000005490")

1

Bir yineleme birden mongodb düğümleri set var mı?

buldum, doğru kaldır sözdizimi ki (ben Robomongo GUI Mongo kabuk aracılığıyla kullanıyorum, ben aynı diğer durumlarda geçerlidir sanırım) yani

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")}) 

... bağlandığınız sürece çalışmıyor Çoğaltma kümesinin birincil düğümü.