Saya menemukan pertanyaan ini dijawab untuk C # dan Perl, tetapi tidak di antarmuka asli. Saya pikir ini akan berhasil:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
Permintaan tidak mengembalikan hasil. Saya menemukan 4ecbe7f9e8c1c9092c000027 dengan melakukan db.theColl.find()
dan meraih ObjectId. Ada beberapa ribu objek dalam koleksi itu.
Saya telah membaca semua halaman yang dapat saya temukan di situs web mongodb.org dan tidak menemukannya. Apakah ini hal yang aneh untuk dilakukan? Sepertinya cukup normal bagi saya.
Jika Anda menggunakan Node.js:
Edit: dikoreksi ke ObjectId (id) baru, bukan ObjectID (id) baru
sumber
import { ObjectId } from "mongodb";
bekerja untuk JS pelamun.Lebih mudah, terutama dengan penyelesaian tab:
Sunting: juga berfungsi dengan
findOne
perintah untuk hasil yang lebih cantik.sumber
db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
db.test.findOneAndDelete(ObjectId('57eujhs76e7hs877e868'))
perintah akan menghapus dokumen bahkan jika ObjectId tidak cocok dengan id yang ditentukan. Anda harus menentukan secara tepat seperti inidb.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
find()
, bukan tentangfindOneAndDelete()
.Anda Telah melewatkan memasukkan Kutipan Ganda. Permintaan Tepat adalah
sumber
Jika Anda sedang mengerjakan shell mongo, Silakan lihat ini: Jawaban dari Tyler Brock
Saya menulis jawabannya jika Anda menggunakan mongodb menggunakan node.js
Anda tidak perlu mengonversi id menjadi
ObjectId
. Cukup gunakan:metode pengumpulan ini akan secara otomatis mengubah id menjadi ObjectId.
Di samping itu :
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
tidak berfungsi seperti yang diharapkan. Anda secara manual mengubah id menjadiObjectId
.Itu bisa dilakukan seperti ini:
sumber
Saya baru saja mengalami masalah ini dan melakukan persis seperti yang telah didokumentasikan dan masih tidak berfungsi.
Lihatlah pesan kesalahan Anda dan pastikan Anda tidak memiliki karakter khusus yang disalin. Saya mendapat kesalahan
Ketika saya pergi ke karakter 43 itu hanya permulaan dari ID objek saya, setelah tanda kutip terbuka, persis ketika saya menempelkannya. Saya meletakkan kursor saya di sana dan menekan backspace sepertinya tidak terjadi apa-apa ketika itu seharusnya menghilangkan kutipan terbuka. Saya menekan backspace lagi dan menghapus kuotasi terbuka, kemudian saya memasukkan kuotasi kembali dan mengeksekusi kueri dan berhasil, meskipun tampak persis sama.
Saya melakukan pengembangan di WebMatrix dan menyalin id objek dari konsol. Setiap kali Anda menyalin dari konsol di WebMatrix Anda cenderung mengambil beberapa karakter yang tidak terlihat yang akan menyebabkan kesalahan.
sumber
Setelah Anda membuka mongo CLI, terhubung dan disahkan pada database yang tepat.
sumber
Dalam fungsi MongoDB Stitch dapat dilakukan menggunakan BSON seperti di bawah ini:
Gunakan
ObjectId
helper dalam paket utilitas BSON untuk tujuan ini seperti dalam contoh berikut:sumber
Saya pikir Anda lebih baik menulis sesuatu seperti ini:
sumber
Untuk menggunakan metode Objectid, Anda tidak perlu mengimpornya. Sudah ada di objek mongodb.
sumber
TypeError: db.ObjectId is not a function
ObjectId("SOMETHING")
Jika Anda menggunakan Node.js:
Dalam req.user itu adalah format ObjectId.
sumber
Cukup lakukan:
sumber
Mongo Shell
versi 3.2.7.