pertanyaan objectid nodejs

PHPz
PHPzasal
2023-05-27 19:41:38587semak imbas

Apabila menggunakan Node.js untuk operasi pangkalan data, kami sering menggunakan MongoDB sebagai pangkalan data bahagian belakang, dan jenis data yang biasa digunakan dalam MongoDB ialah ObjectId. ObjectId ialah pengecam unik global yang terdiri daripada 12 bait, dan strukturnya adalah seperti berikut:

ObjectID("5f750930cc775b0c6b387532")

Dalam MongoDB, setiap dokumen mesti mengandungi medan "_id" untuk mengenal pasti dokumen secara unik. Jika anda tidak mentakrifkan medan "_id" secara eksplisit, MongoDB akan menjana ObjectId secara automatik untuk dokumen tersebut.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan ObjectId untuk operasi pertanyaan dalam Node.js.

  1. Menyiasat satu dokumen dengan ObjectId

Kita boleh menggunakan ObjectId untuk menanyakan dokumen, berikut ialah contoh:

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();
  });
});

Dalam contoh di atas, Kami mencipta ObjectId dan menggunakannya sebagai kriteria pertanyaan untuk mencari satu dokumen. Jika dokumen itu wujud, cetak dokumen dan tutup sambungan pangkalan data.

  1. Menyiasat berbilang dokumen oleh ObjectId

Jika kami ingin menanyakan berbilang dokumen menggunakan ObjectId, kami boleh menggunakan pengendali $in MongoDB. Berikut ialah contoh:

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();
  });
});

Dalam contoh di atas, kami menggunakan operator $in untuk menanyakan berbilang ObjectId. Jika dokumen itu wujud, cetak keputusan dan tutup sambungan pangkalan data.

  1. Menyiasat dokumen bersarang oleh ObjectId

Dalam MongoDB, dokumen boleh mengandungi dokumen bersarang dan kami boleh menggunakan ObjectId untuk menanyakan dokumen bersarang. Berikut ialah contoh:

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();
  });
});

Dalam contoh di atas, kami menanyakan dokumen yang bersarang dalam medan "pengarang" oleh ObjectId. Jika subdokumen wujud, cetak subdokumen dan tutup sambungan pangkalan data.

Ringkasan

ObjectId ialah salah satu jenis data yang sangat penting dalam MongoDB Apabila kami menggunakan Node.js untuk operasi pangkalan data, kami perlu mahir dalam operasi ObjectId yang berkaitan. Dalam artikel ini, kami memperkenalkan cara menggunakan ObjectId untuk operasi pertanyaan, termasuk menanyakan satu dokumen melalui ObjectId, menanyakan berbilang dokumen melalui ObjectId dan menanyakan dokumen bersarang melalui ObjectId. Semoga artikel ini dapat memberi manfaat kepada semua.

Atas ialah kandungan terperinci pertanyaan objectid nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:kekeliruan penggunaan nodejsArtikel seterusnya:kekeliruan penggunaan nodejs