Di konsol MongoDB bagaimana saya bisa menghapus catatan dengan id? Ini koleksi saya:
[
{
"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
"name" : "Gazza"
},
{
"_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
"name" : "Dave",
"adminOf" : { },
"email" : "[email protected]"
}
]
Dan berikut adalah perintah yang saya coba yang tidak berhasil:
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")});
Menghapus menurut nama berfungsi:
db.test_users.remove( {"name":"Gazza"});
Ini ada di shell browser di di mongodb.org jika itu membuat perbedaan
Terima kasih
Jawaban:
Sangat dekat. Ini akan berhasil:
yaitu Anda tidak perlu yang baru untuk ObjectId.
Juga, perhatikan bahwa di beberapa driver / alat,
remove()
sekarang sudah usang dandeleteOne
ataudeleteMany
harus digunakan sebagai gantinya.sumber
_id
bidang tidak secara otomatis (yakni bukan ObjectId, tapi String), Anda hanya dapat menulis nilai_id
di bawah tanda kutip:db.your.database.remove({"_id": "your value"})
.Jawabannya adalah konsol web / shell di mongodb.org berperilaku berbeda dan tidak seperti yang saya harapkan. Versi terinstal di rumah bekerja dengan sempurna tanpa masalah yaitu; _id yang dihasilkan secara otomatis pada shell web disimpan seperti ini:
Setup dokumen yang sama di rumah dan _id yang dibuat otomatis disimpan seperti ini:
Pertanyaan bekerja melawan yang terakhir tanpa masalah.
sumber
Nah, _id adalah objek dalam contoh Anda, jadi Anda hanya perlu melewatkan objek
Ini seharusnya bekerja
Sunting: Menambahkan trailing paren untuk memastikan kompilasi.
sumber
Jika Anda ingin menghapus dengan daftar ID ini berfungsi baik.
sumber
Apakah Anda memiliki beberapa node mongodb di set replika?
Saya menemukan (saya menggunakan via Robomongo gui mongo shell, saya kira sama berlaku dalam kasus lain) bahwa sintaks hapus yang benar, yaitu
... tidak berfungsi kecuali jika Anda terhubung ke simpul utama dari set replika.
sumber
Saya baru saja menabrak ini sendiri dan variasi ini bekerja untuk saya:
sumber
pertama-tama dapatkan fungsi ObjectID dari mongodb ObjectId = require (mongodb) .ObjectID;
maka Anda dapat memanggil _id dengan fungsi hapus
"_id": ObjectId ("4d5192665777000000005454")
sumber
Meskipun pos ini sudah usang, collection.remove sudah usang!
collection.delete_one
harus digunakan sebagai gantinya!Informasi lebih lanjut dapat ditemukan di bawah #remove
sumber
Misalkan kita memiliki koleksi boneka ini:
cukup gunakan:
itu akan dihapus dengan ini sebagai tanggapan:
Itu dia.
sumber
Solusi dan Contoh:
1- C: \ MongoDB \ Server \ 3.2 \ bin> mongo (belum mengeluarkan perintah karena Anda belum terhubung ke database apa pun, Anda hanya terhubung ke server database mongodb).
2-
3 -
4-
sekarang Anda melihat WriteResult ({"nRemoved": 1}) adalah 1 bukan 0.
Selesai
sumber