Maison >interface Web >Questions et réponses frontales >requête d'identifiant d'objet nodejs

requête d'identifiant d'objet nodejs

PHPz
PHPzoriginal
2023-05-27 19:41:38593parcourir

Lorsque nous utilisons Node.js pour les opérations de base de données, nous utilisons souvent MongoDB comme base de données principale, et un type de données couramment utilisé dans MongoDB est ObjectId. ObjectId est un identifiant globalement unique composé de 12 octets, et sa structure est la suivante :

ObjectID("5f750930cc775b0c6b387532")

Dans MongoDB, chaque document doit contenir un champ "_id" pour identifier le document de manière unique. Si vous ne définissez pas explicitement le champ "_id", MongoDB générera automatiquement un ObjectId pour le document.

Dans cet article, nous expliquerons comment utiliser ObjectId pour les opérations de requête dans Node.js.

  1. Interroger un seul document par ObjectId

Nous pouvons utiliser ObjectId pour interroger un document, voici un exemple :

const MongoClient = require('mongodb').MongoClient;
const ObjectID = require('mongodb').ObjectID;

const url = 'mongodb://localhost:27017/test';

MongoClient.connect(url, (err, db) => {
  if (err) throw err;
  const dbo = db.db('test');
  const query = { _id: ObjectID("5f750930cc775b0c6b387532") };
  dbo.collection('users').findOne(query, (err, result) => {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Dans l'exemple ci-dessus, nous avons créé un ObjectId et l'avons utilisé comme critère de requête pour trouver un seul document. Si le document existe, imprimez-le et fermez la connexion à la base de données.

  1. Interroger plusieurs documents par ObjectId

Si nous voulons interroger plusieurs documents à l'aide d'ObjectId, nous pouvons utiliser l'opérateur $in de MongoDB. Voici un exemple :

const MongoClient = require('mongodb').MongoClient;
const ObjectID = require('mongodb').ObjectID;

const url = 'mongodb://localhost:27017/test';

MongoClient.connect(url, (err, db) => {
  if (err) throw err;
  const dbo = db.db('test');
  const query = { _id: { $in: [ObjectID("5f750930cc775b0c6b387532"), ObjectID("5f75093ecc775b0c6b387533")] } };
  dbo.collection('users').find(query).toArray((err, result) => {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Dans l'exemple ci-dessus, nous utilisons l'opérateur $in pour interroger plusieurs ObjectIds. Si le document existe, imprimez les résultats et fermez la connexion à la base de données.

  1. Requête de documents imbriqués par ObjectId

Dans MongoDB, les documents peuvent contenir des documents imbriqués et nous pouvons utiliser ObjectId pour interroger des documents imbriqués. Voici un exemple :

const MongoClient = require('mongodb').MongoClient;
const ObjectID = require('mongodb').ObjectID;

const url = 'mongodb://localhost:27017/test';

MongoClient.connect(url, (err, db) => {
  if (err) throw err;
  const dbo = db.db('test');
  const query = { "author.id": ObjectID("5f750930cc775b0c6b387532") };
  dbo.collection('articles').find(query).toArray((err, result) => {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Dans l'exemple ci-dessus, nous interrogeons les documents imbriqués dans le champ "auteur" par ObjectId. Si le sous-document existe, imprimez-le et fermez la connexion à la base de données.

Résumé

ObjectId est l'un des types de données très importants de MongoDB Lorsque nous utilisons Node.js pour les opérations de base de données, nous devons maîtriser les opérations associées d'ObjectId. Dans cet article, nous expliquons comment utiliser ObjectId pour les opérations de requête, notamment l'interrogation d'un seul document via ObjectId, l'interrogation de plusieurs documents via ObjectId et l'interrogation de documents imbriqués via ObjectId. J'espère que cet article pourra être utile à tout le monde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn