J'ai trouvé une réponse à cette question pour C # et Perl, mais pas dans l'interface native. Je pensais que cela fonctionnerait:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
La requête n'a renvoyé aucun résultat. J'ai trouvé le 4ecbe7f9e8c1c9092c000027 en faisant db.theColl.find()
et en saisissant un ObjectId. Il y a plusieurs milliers d'objets dans cette collection.
J'ai lu toutes les pages que j'ai pu trouver sur le site mongodb.org et je ne les ai pas trouvées. Est-ce juste une chose étrange à faire? Cela me semble assez normal.
Si vous utilisez Node.js:
Modifier: corrigé en nouvel ObjectId (id), pas en nouveau ObjectID (id)
la source
import { ObjectId } from "mongodb";
travaille pour l'amateur JS.Encore plus facile, surtout avec la complétion des onglets:
Edit: fonctionne également avec la
findOne
commande pour une sortie plus jolie.la source
db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
db.test.findOneAndDelete(ObjectId('57eujhs76e7hs877e868'))
commande supprimera un document même si l'ObjectId ne correspond pas à l'ID spécifié. Vous devez spécifier précisément comme cecidb.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
find()
, pas surfindOneAndDelete()
.Vous avez manqué d'insérer des guillemets doubles. La requête exacte est
la source
Si vous travaillez sur la coquille de mongo, veuillez vous référer à ceci: Réponse de Tyler Brock
J'ai écrit la réponse si vous utilisez mongodb en utilisant node.js
Vous n'avez pas besoin de convertir l'id en un
ObjectId
. Utilisez simplement:cette méthode de collecte convertira automatiquement id en ObjectId.
D'autre part :
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
ne fonctionne pas comme prévu. Vous avez converti manuellement l'identifiant enObjectId
.Cela peut se faire comme ceci:
la source
Je viens d'avoir ce problème et je faisais exactement ce qui était documenté et cela ne fonctionnait toujours pas.
Examinez votre message d'erreur et assurez-vous de ne pas copier de caractères spéciaux. J'obtenais l'erreur
Lorsque je suis allé au caractère 43, ce n'était que le début de mon ID d'objet, après les guillemets ouverts, exactement comme je l'ai collé. J'ai frappé à nouveau en arrière et il a supprimé la citation ouverte, puis j'ai remis la citation et exécuté la requête et cela a fonctionné, malgré la même apparence.
Je faisais du développement dans WebMatrix et j'ai copié l'ID d'objet à partir de la console. Chaque fois que vous copiez à partir de la console dans WebMatrix, vous êtes susceptible de détecter des caractères invisibles qui provoqueront des erreurs.
la source
Une fois que vous avez ouvert la CLI mongo, connecté et autorisé sur la bonne base de données.
la source
Dans les fonctions MongoDB Stitch, cela peut être fait en utilisant BSON comme ci-dessous:
Utilisez l'
ObjectId
assistant du package d'utilitaires BSON à cet effet, comme dans l'exemple suivant:la source
Je pense que tu ferais mieux d'écrire quelque chose comme ça:
la source
Pour utiliser la méthode Objectid, vous n'avez pas besoin de l'importer. C'est déjà sur l'objet mongodb.
la source
TypeError: db.ObjectId is not a function
ObjectId("SOMETHING")
Si vous utilisez Node.js:
Dans ce req.user est le format ObjectId.
la source
Faites simplement:
la source
Mongo Shell
version 3.2.7.