如何在 MongoDB 中通过 ID 进行搜索

MongoDB 中,集合中的每个文档都有一个名为“id”的字段,作为其唯一标识符。这个“id”字段充当主键,为每个文档提供了唯一标识。通过 ID 进行搜索是 MongoDB 中的一项常见操作,它允许我们根据文档的唯一标识符来检索特定的文档。

在本文中,我们将探讨如何在 MongoDB 中通过 ID 进行搜索,并通过相关的概念和示例来帮助我们有效地理解这一过程。

理解 MongoDB 中的 ObjectID

  • MongoDB 中,集合中的每个 document 都有一个名为 **_id** 的唯一标识符。
  • 这个字段由 MongoDB 自动生成,其类型为 ObjectId
  • _id 字段确保了集合中每个文档的唯一性,并默认进行索引以加快检索速度。
  • MongoDB 中的 find%20method%20in,and%20returns%20one%20by%20one.) 方法用于查询集合中的文档。
  • 要根据文档的 INLINECODE1b02d5fe 搜索文档,我们可以将一个包含 INLINECODEa00c83d1 值的对象传递给 find 方法。

语法:

db.collectionName.find({ _id: ObjectId("your_id_here") })

请将 INLINECODEd6d187a3 替换为我们的集合名称,并将 INLINECODE60567903 替换为我们想要搜索的实际 INLINECODE75f701a3 值。MongoDB 将返回具有匹配 INLINECODE0c0cb4ee 的文档。

MongoDB 中按 ID 搜索的示例

让我们设置一个环境:

为了理解如何在 MongoDB 中按 ID 搜索,我们需要一个集合以及一些文档,以便在这些文档上执行各种操作和 queries。在这里,我们将考虑一个名为 users 的集合,它包含如下所示的信息。

[
  { "_id": ObjectId("5f76e3d4b03f5d0012c279c7"), "name": "Alice", "age": 30 },
  { "_id": ObjectId("5f76e3e4b03f5d0012c279c8"), "name": "Bob", "age": 35 },
  { "_id": ObjectId("5f76e3f1b03f5d0012c279c9"), "name": "Charlie", "age": 40 },
  { "_id": ObjectId("5f76e3f9b03f5d0012c279ca"), "name": "David", "age": 45 },
  { "_id": ObjectId("5f76e404b03f5d0012c279cb"), "name": "Eve", "age": 50 },
  { "_id": ObjectId("5f76e40fb03f5d0012c279cc"), "name": "Frank", "age": 55 },
  { "_id": ObjectId("5f76e416b03f5d0012c279cd"), "name": "Grace", "age": 60 },
  { "_id": ObjectId("5f76e41eb03f5d0012c279ce"), "name": "Hannah", "age": 65 },
  { "_id": ObjectId("5f76e426b03f5d0012c279cf"), "name": "Ivy", "age": 70 },
  { "_id": ObjectId("5f76e42eb03f5d0012c279d0"), "name": "Jack", "age": 75 }
]

示例 1:简单搜索

让我们检索 “users” 集合中 “id” 等于 INLINECODEb0722663 的文档。

db.users.find({ _id: ObjectId("5f76e3d4b03f5d0012c279c7") })

输出结果

{ "_id": ObjectId("5f76e3d4b03f5d0012c279c7"), "name": "Alice", "age": 30 }

示例 2:使用 Node.js 驱动程序通过 _id 进行搜索

  • 让我们编写一个 Node.js 函数来连接 MongoDB 数据库,并使用其 ObjectID (**5f76e3e4b03f5d0012c279c8**) 从 “users” 集合中检索文档。
  • 将搜索结果记录到控制台。使用 INLINECODEe3d181fa 包中的 INLINECODE14c0d73e**ObjectId**,并轻松处理错误。
const { MongoClient, ObjectId } = require(‘mongodb‘);

async function searchById() {
  const uri = ‘mongodb://localhost:27017‘;
  const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });

  try {
    await client.connect();
    const database = client.db(‘mydb‘);
    const collection = database.collection(‘users‘);

    const result = await collection.findOne({ _id: new ObjectId("5f76e3e4b03f5d0012c279c8") });
    console.log(‘Search result:‘, result);
  } finally {
    await client.close();
  }
}

searchById().catch(console.error);

输出结果

Search result: { _id: 5f76e3e4b03f5d0012c279c8, name: ‘Bob‘, age: 35 }

示例 3:使用 Mongoose 通过 _id 进行搜索

  • 在使用 MongooseNode.js 应用程序中,为包含字段 “name”(字符串)和 “age”(数字)的 “User” 集合定义一个 schema(模式)。为 “User” 集合创建一个模型。
  • 使用 INLINECODEeb85b4d0 方法在 “User” 集合中搜索 id 为 5f76e3f1b03f5d0012c279c9 的文档,并将结果记录到控制台。处理搜索操作期间可能发生的任何错误。

“`

cons

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/42618.html
点赞
0.00 平均评分 (0% 分数) - 0