Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Trong loạt bài đào tạo Chi tiết về MongoDB này, hướng dẫn trước đây của chúng tôi đã giải thích cho chúng ta tất cả về cách sử dụng Update() và Delete() Document trong MongoDB

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về ObjectId và các phương thức của nó trong MongoDB

Về cơ bản, ObjectId được coi là khóa chính trong bất kỳ bộ sưu tập MongoDB nào

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Nó được tạo tự động bất cứ khi nào chúng tôi tạo một tài liệu mới trong một bộ sưu tập mới. Nó dựa trên giá trị thập lục phân 12 byte như bạn có thể quan sát theo cú pháp sau

cú pháp

ObjectId()

Giá trị thập lục phân này được chia thành ba phân đoạn như sau

  • Phân đoạn đầu tiên của giá trị 4 byte biểu thị số giây kể từ kỷ nguyên UNIX
  • Phân đoạn thứ hai của giá trị ngẫu nhiên 5 byte
  • Đoạn thứ ba của bộ đếm 3 byte bắt đầu với một giá trị ngẫu nhiên

MongoDB cung cấp ba phương thức cho ObjectId như hình bên dưới

  • ID đối tượng. lấy Dấu thời gian()
  • ID đối tượng. toString()
  • ID đối tượng. giá trị của()

Bạn sẽ học được gì

  • Tạo ObjectId
  • Xác định ObjectId cụ thể theo hệ thập lục phân
  • Nhận chuỗi thập lục phân ObjectId
  • Phần kết luận
  • đề xuất đọc

Tạo ObjectId

Để tạo một objectID mới theo cách thủ công trong MongoDB, bạn có thể khai báo objectId như một phương thức. Nói một cách đơn giản, chúng ta có thể nói rằng ID đối tượng là một mã định danh duy nhất cho mỗi bản ghi. Trong hình ảnh bên dưới, bạn có thể quan sát thấy rằng chúng tôi đang khai báo một biến có phương thức ID đối tượng làm giá trị và nó sẽ trả về hệ thập lục phân duy nhất

Mã số

X = ObjectId()

Hình 1. Trong vỏ Mongo

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Hình 2. Trong Robo 3T

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Trong hình trên, bạn có thể quan sát thấy rằng chúng ta đang khai báo một phương thức objectID làm giá trị cho biến “x” nhiều lần. Mỗi lần nó sẽ trả về một giá trị thập lục phân duy nhất và khi chúng ta chỉ gọi “x”, nó sẽ trả về giá trị thập lục phân được lưu trữ cuối cùng

Từ thử nghiệm này, chúng ta biết rằng, mỗi khi chúng ta gọi ObjectID, nó sẽ dành một vị trí cụ thể trong bộ nhớ ảo cho một bản ghi

Xác định ObjectId cụ thể theo hệ thập lục phân

Nếu bạn muốn xác định giá trị thập lục phân duy nhất của riêng mình thì MongoDB sẽ cho phép bạn thực hiện hành động này. Trong ví dụ trên, nó chỉ khai báo ID đối tượng mà không có bất kỳ tham số nào dưới dạng phương thức

Trong trường hợp này, chúng tôi sẽ xác định ID đối tượng có giá trị thập lục phân làm tham số của phương thức

Như bạn có thể quan sát, trong hình ảnh sau đây, chúng tôi đang xác định giá trị của biến “y” dưới dạng ID đối tượng được xác định trước. Do đó, nó sẽ trả về cùng một ID đối tượng mà qua đó chúng ta biết rằng chúng ta có thể chỉ định một giá trị thập lục phân cụ thể cho một ID đối tượng riêng lẻ

Mã số

y = ObjectId(“5bf142459b72e12b2b1b2cd”)

Hình 3. Trong vỏ Mongo

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

hinh 4. Trong Robo 3T

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Nhận chuỗi thập lục phân ObjectId

Khi bạn gọi ID đối tượng, nó sẽ không trả về cho bạn chuỗi, thay vào đó, nó sẽ trả về cho bạn toàn bộ phương thức có giá trị thập lục phân duy nhất

Để trích xuất hệ thập lục phân duy nhất dưới dạng một chuỗi từ objectID, bạn phải sử dụng “. str” là hậu tố. Trong hình ảnh sau đây, bạn có thể quan sát cách thức hoạt động của nó

Mã số

y = ObjectId(“5bf142459b72e12b2b1b2cd”). str

Hình 5. Trong vỏ Mongo

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Hình 6. Trong Robo 3T

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

Phần kết luận

ID đối tượng được coi là khóa chính trong bộ sưu tập MongoDB và được tạo tự động. Chúng tôi có thể tạo ID đối tượng theo cách thủ công và chúng tôi cũng có thể xác định giá trị thập lục phân theo yêu cầu của chúng tôi

Chúng tôi cũng có thể trích xuất giá trị thập lục phân dưới dạng một chuỗi từ ID đối tượng. ID đối tượng là sự kết hợp của thời gian, giá trị ngẫu nhiên và giá trị bộ đếm. Mỗi khi chúng ta gọi ID đối tượng, nó sẽ tạo ra một giá trị thập lục phân duy nhất

MongoDB là cơ sở dữ liệu định hướng tài liệu NoSQL. Trong MongoDB, dữ liệu được lưu trữ trong cấu trúc tài liệu giống như JSON thay vì lưu trữ dữ liệu theo kiểu cột và hàng. MongoDB linh hoạt để lưu trữ dữ liệu bán cấu trúc và phi cấu trúc. MongoDB được sử dụng để lưu trữ dữ liệu khối lượng lớn và có thể mở rộng theo chiều ngang

Vui lòng nhập Objectid từ pymongo

từ pymongo nhập ObjectId

ID đối tượng. Lớp ObjectId là loại BSON nhị phân 12 byte, trong đó 4 byte dấu thời gian tạo, 5 byte giá trị ngẫu nhiên và 3 byte bộ đếm tăng dần. ObjectId là khóa chính mặc định cho các tài liệu MongoDB và thường được tìm thấy trong trường “_id”

eg : { "_id" : ObjectId("54759eb3c090d83494e2d804") }

PyMongo. PyMongo là trình điều khiển Python gốc cho MongoDB. Nó cho phép tương tác với Cơ sở dữ liệu MongoDB thông qua Python

Bước 1. Đảm bảo khởi động cục bộ cơ sở dữ liệu MongoDB trên cổng mặc định (27017). Kết nối với MongoDB, truy cập cơ sở dữ liệu và thu thập các đối tượng

Python3




y = ObjectId(“5bf142459b72e12b2b1b2cd”)
0

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
1
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
2
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
3
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
4

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
5

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
1
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
7
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
3
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
1

 

find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
2

find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
3

find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
4
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
6
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
7
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
8
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
9
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
00

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
01

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
02
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
04
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
05
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
06

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
07

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
08
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
10____211
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
06

Bước 2. Truy vấn MongoDB với find_one()

cú pháp

find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments

ví dụ 1. Trong ví dụ này, chúng tôi đã lưu trữ đối tượng ObjectId, sau đó sử dụng đối tượng được lưu trữ để tìm kiếm tài liệu

Python3




y = ObjectId(“5bf142459b72e12b2b1b2cd”)
13

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
14

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
15
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
17_______218
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
19
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
20
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
8
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
22
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
19
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
24
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
25

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
26

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
27

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
28

đầu ra

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

ví dụ 2. Trong ví dụ này, chúng ta có chuỗi hex không phải là đối tượng của ObjectId. Chúng tôi nhập ObjectId từ thư viện bson để tìm kiếm tài liệu

Python3




y = ObjectId(“5bf142459b72e12b2b1b2cd”)
29

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
30

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
31

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
32
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
34

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
15
find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments
5
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
37____232
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
00

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
40
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
41
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
42

 

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
43

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
40
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
41
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
46
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
32
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
48

y = ObjectId(“5bf142459b72e12b2b1b2cd”)
49
y = ObjectId(“5bf142459b72e12b2b1b2cd”)
32____251

đầu ra

Làm cách nào để lấy dữ liệu bằng id trong MongoDB?

ví dụ 3. Trong ví dụ này, chúng tôi tiến hành tìm kiếm bằng cách chỉ định các phép chiếu là trường nào chúng tôi muốn bao gồm/loại trừ trong tập kết quả. Phép chiếu bên dưới sẽ trả về toàn bộ tài liệu mà không có trường “_id”

Làm cách nào để sử dụng id trong MongoDB?

Mọi tài liệu trong bộ sưu tập đều có trường “_id” được sử dụng để xác định duy nhất tài liệu trong một bộ sưu tập cụ thể, trường này đóng vai trò là khóa chính cho các tài liệu trong bộ sưu tập . Trường “_id” có thể được sử dụng ở bất kỳ định dạng nào và định dạng mặc định là ObjectId của tài liệu.

Làm cách nào để lấy dữ liệu từ MongoDB?

Bạn có thể sử dụng thao tác đọc để truy xuất dữ liệu từ cơ sở dữ liệu MongoDB của mình. Có nhiều loại thao tác đọc truy cập dữ liệu theo những cách khác nhau. Nếu bạn muốn yêu cầu kết quả dựa trên một bộ tiêu chí từ bộ dữ liệu hiện có, bạn có thể sử dụng thao tác tìm chẳng hạn như phương thức find() hoặc findOne().

Làm cách nào để lấy ID đối tượng trong MongoDB?

valueOf() Trả về giá trị của ObjectId() dưới dạng chuỗi thập lục phân chữ thường. Giá trị này là thuộc tính str của đối tượng ObjectId()

Làm cách nào để tìm dữ liệu trên id trong MongoDB Compass?

La bàn MongoDB tìm theo id .
Nhấp vào nút danh sách thả xuống TÙY CHỌN
Áp dụng điều kiện để tìm tài liệu theo id của họ