Eu encontrei esta pergunta respondida para C # e Perl, mas não na interface nativa. Eu pensei que isso iria funcionar:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
A consulta não retornou resultados. Encontrei o 4ecbe7f9e8c1c9092c000027 fazendo db.theColl.find()
e pegando um ObjectId. Existem vários milhares de objetos nessa coleção.
Eu li todas as páginas que pude encontrar no site mongodb.org e não as encontrei. Isso é apenas uma coisa estranha a se fazer? Parece-me bastante normal.
Se você estiver usando o Node.js:
Editar: corrigido para o novo ObjectId (id), não para o novo ObjectID (id)
fonte
import { ObjectId } from "mongodb";
trabalha para JS mais sofisticado.Ainda mais fácil, especialmente com o preenchimento de guias:
Editar: também funciona com o
findOne
comando para obter uma saída mais bonita.fonte
db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
db.test.findOneAndDelete(ObjectId('57eujhs76e7hs877e868'))
comando excluirá um documento, mesmo que o ObjectId não corresponda ao ID especificado. Você precisa especificar com precisão assimdb.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
find()
, não sobrefindOneAndDelete()
.Você esqueceu de inserir aspas duplas. A consulta exata é
fonte
Se você estiver trabalhando no shell mongo, consulte: Resposta de Tyler Brock
Eu escrevi a resposta se você estiver usando mongodb usando node.js
Você não precisa converter o ID em um
ObjectId
. Apenas use :esse método de coleção converterá automaticamente o ID em ObjectId.
Por outro lado :
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
não funciona como esperado. Você converteu manualmente o ID emObjectId
.Isso pode ser feito assim:
fonte
Acabei de ter esse problema e estava fazendo exatamente o que foi documentado e ainda não estava funcionando.
Veja sua mensagem de erro e verifique se você não possui nenhum caractere especial copiado. Eu estava recebendo o erro
Quando cheguei ao personagem 43, era apenas o início do meu ID do objeto, após as aspas abertas, exatamente como o colei. Coloquei o cursor lá e pressionei backspace. Nada parecia acontecer quando deveria ter removido a cotação aberta. Apertei backspace novamente e ele removeu a cotação aberta, depois coloquei a cotação novamente e executei a consulta e funcionou, apesar de parecer exatamente o mesmo.
Eu estava desenvolvendo o WebMatrix e copiei o ID do objeto do console. Sempre que você copiar do console no WebMatrix, é provável que você escolha alguns caracteres invisíveis que causarão erros.
fonte
Depois de abrir a CLI do mongo, conectada e autorizada no banco de dados correto.
fonte
Nas funções do MongoDB Stitch, isso pode ser feito usando o BSON como abaixo:
Use o
ObjectId
auxiliar no pacote do utilitário BSON para esse fim, como no exemplo a seguir:fonte
Acho melhor você escrever algo assim:
fonte
Para usar o método Objectid, você não precisa importá-lo. Já está no objeto mongodb.
fonte
TypeError: db.ObjectId is not a function
ObjectId("SOMETHING")
Se você estiver usando o Node.js:
Nesse req.user está o formato ObjectId.
fonte
Simplesmente faça:
fonte
Mongo Shell
versão 3.2.7.