Làm cách nào để lấy dữ liệu từ 2 bộ sưu tập trong MongoDB?

MongoDB không phải là cơ sở dữ liệu quan hệ, nhưng bạn có thể thực hiện phép nối ngoài bên trái bằng cách sử dụng giai đoạn

switched to db admin

7

Giai đoạn

switched to db admin

7 cho phép bạn chỉ định bộ sưu tập nào bạn muốn tham gia với bộ sưu tập hiện tại và trường nào sẽ khớp

Giả sử bạn có bộ sưu tập "đơn đặt hàng" và bộ sưu tập "sản phẩm"

mệnh lệnh

[
  { _id. 1, product_id. 154, trạng thái. 1 }
]

Mỹ phẩm

[
  { _id. 154, tên. 'Thiên đường sô cô la' },
  { _id. 155, tên. 'Chanh ngon' },
  { _id. 156, tên. 'Giấc mơ vani' }
]

Ví dụ

Tham gia [các] tài liệu "sản phẩm" phù hợp với bộ sưu tập "đơn đặt hàng"

var MongoClient = require['mongodb']. MongoClient;
var url = "mongodb. //127. 0. 0. 1. 27017/";

MongoClient. connect[url, function[err, db] {
  if [err] throw err;
  var dbo = db. db["mydb"];
  dbo. bộ sưu tập ['đơn đặt hàng']. tổng hợp[[
    { $lookup.
       {
         từ. 'sản phẩm',
         localField. 'product_id',
         trường nước ngoài. '_id',
         như. 'chi tiết đơn hàng'
       }
     }
    ]]. toArray[function[err, res] {
    if [err] throw err;
    bảng điều khiển. nhật ký [JSON. stringify[res]];
    db. close[];
  }];
}];

Chạy ví dụ »

Lưu mã ở trên vào tệp có tên "demo_mongodb_join. js" và chạy tệp

Chạy "demo_mongodb_join. js"

C. \Users\Tên của bạn>nút demo_mongodb_join. js

Cái nào sẽ cho bạn kết quả này

[
  { "_id". 1, "id_sản phẩm". 154, "trạng thái". 1, "chi tiết đơn hàng". [
    { "_id". 154, "tên". "Thiên đường sô cô la" } ]
  }
]

Như bạn có thể thấy từ kết quả ở trên, tài liệu phù hợp từ bộ sưu tập sản phẩm được bao gồm trong bộ sưu tập đơn đặt hàng dưới dạng một mảng

MongoDB sử dụng các cấu trúc hướng tài liệu để lưu trữ, quản lý và xử lý dữ liệu. Các tài liệu riêng lẻ được tổ chức thành các bộ sưu tập, do đó, được lưu trữ trong cơ sở dữ liệu. Vì lược đồ của mỗi tài liệu không được xác định bởi lược đồ tĩnh, nên các hệ thống dựa trên tài liệu cung cấp tính linh hoạt hơn các hệ thống quan hệ bao gồm các bảng và bản ghi

Trong hướng dẫn này, chúng ta sẽ nói về cách tạo và quản lý các cấu trúc mà MongoDB sử dụng để sắp xếp dữ liệu. Chúng tôi sẽ đề cập đến cách tạo và quản lý cơ sở dữ liệu, sau đó là cách tạo các bộ sưu tập để chứa các tài liệu tương tự hoặc có liên quan

LIÊN QUAN ĐẾN PRISMA. IO

Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất

Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có

Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu

Cách xem cơ sở dữ liệu hiện có

Trước khi chúng tôi bắt đầu tạo cơ sở dữ liệu mới, thật hữu ích khi làm quen với một số phương pháp mà MongoDB cung cấp để tìm thông tin về cơ sở dữ liệu hiện có. Điều này có thể giúp bạn hiểu được trạng thái hiện tại của hệ thống trước khi bắt đầu thực hiện các thay đổi

Để hiển thị tất cả cơ sở dữ liệu trên hệ thống mà bạn có quyền truy cập, hãy sử dụng phương thức

switched to db admin

1

show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

MongoDB sẽ phản hồi với tên của tất cả các cơ sở dữ liệu có thể truy cập trên hệ thống cũng như tóm tắt về không gian lưu trữ hiện tại của chúng

Để xem bạn hiện đang đặt cơ sở dữ liệu nào để hoạt động trên đó, hãy sử dụng lệnh

switched to db admin

2 hoặc bí danh viết tắt của nó,

switched to db admin

3

db

test

Bạn có thể thấy rằng bạn hiện đang sử dụng cơ sở dữ liệu không được liệt kê bởi lệnh

switched to db admin

1. Điều này là do trong MongoDB, cho đến khi bạn ghi tài liệu đầu tiên vào cơ sở dữ liệu, cơ sở dữ liệu chưa thực sự được tạo. Vì vậy, trong ví dụ đầu ra ở trên, shell đã sẵn sàng để hoạt động trên cơ sở dữ liệu

switched to db admin

5, nhưng vì nó chưa tồn tại nên nó sẽ không được trả về bởi lệnh

switched to db admin

1

Để chuyển sang một cơ sở dữ liệu khác, bạn có thể sử dụng lệnh

switched to db admin

7

show dbs

1

switched to db admin

Để có được một số thông tin cơ bản về cơ sở dữ liệu hiện tại của bạn, bạn có thể sử dụng phương thức

switched to db admin

8

show dbs

4

show dbs

5

Đầu ra hiển thị thông tin về số lượng bộ sưu tập trong cơ sở dữ liệu, thống kê lưu trữ, thông tin chỉ mục, v.v.

Cách tạo cơ sở dữ liệu

MongoDB không có lệnh rõ ràng để tạo cơ sở dữ liệu mới. Thay vào đó, như đã đề cập trước đó, thay vào đó, bạn phải chỉ ra cho MongoDB rằng bạn muốn ghi tài liệu mới vào cơ sở dữ liệu mới. Khi những tài liệu đó được tạo ra, chúng sẽ ngầm tạo cơ sở dữ liệu

Để chuẩn bị MongoDB ghi vào cơ sở dữ liệu mới, hãy đưa ra lệnh

switched to db admin

7 để chuyển sang cơ sở dữ liệu không tồn tại

Ở đây, chúng ta sẽ thiết lập MongoDB để tạo một cơ sở dữ liệu mới có tên là

show dbs

40

show dbs

8

show dbs

9

Nếu bạn kiểm tra cơ sở dữ liệu hiện tại của mình, nó sẽ xác nhận rằng cơ sở dữ liệu

show dbs

40 hiện là mục tiêu của các lệnh liên quan đến cơ sở dữ liệu

db

admin 0.000GB

config 0.000GB

local 0.000GB

1

Tuy nhiên, như đã đề cập trước đó, vì chúng tôi chưa tạo bất kỳ tài liệu nào, cơ sở dữ liệu cũng chưa được tạo.

show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

Để thực sự tạo cơ sở dữ liệu mới, trước tiên chúng ta sẽ cần tạo một cái gì đó

Cách xem các bộ sưu tập trong cơ sở dữ liệu

Trong MongoDB, các bộ sưu tập là các cấu trúc được sử dụng để nhóm các tài liệu lại với nhau bằng bất kỳ hệ thống phân loại nào bạn muốn triển khai. Họ sống bên trong cơ sở dữ liệu và lưu trữ tài liệu

Bạn có thể xem các bộ sưu tập có sẵn trong cơ sở dữ liệu mà bạn hiện đang sử dụng bằng cách sử dụng phương pháp

show dbs

42

Ở đây, chúng ta sẽ chuyển sang cơ sở dữ liệu

show dbs

43 có sẵn một số bộ sưu tập để chứng minh

admin 0.000GB

config 0.000GB

local 0.000GB

4

admin 0.000GB

config 0.000GB

local 0.000GB

5

Ngoài ra, bạn có thể truy xuất các tên bộ sưu tập giống nhau trong một mảng bằng phương thức

show dbs

44

admin 0.000GB

config 0.000GB

local 0.000GB

6

admin 0.000GB

config 0.000GB

local 0.000GB

7

Để hiển thị thông tin bổ sung về các bộ sưu tập trong cơ sở dữ liệu hiện tại, hãy sử dụng phương pháp

show dbs

45

admin 0.000GB

config 0.000GB

local 0.000GB

8

admin 0.000GB

config 0.000GB

local 0.000GB

9

Bạn cũng có thể tùy chọn chuyển tài liệu vào lệnh để lọc kết quả. Ví dụ: nếu bạn chỉ muốn xem thông tin về bộ sưu tập

show dbs

46, bạn có thể nhập

db

0

db

1

Để kiểm tra xem một bộ sưu tập chứa bao nhiêu tài liệu, hãy sử dụng phương thức

show dbs

47. Chẳng hạn, lệnh sau kiểm tra có bao nhiêu tài liệu trong bộ sưu tập

show dbs

48

db

2____53

Để xem số liệu thống kê cơ bản về các bộ sưu tập trong cơ sở dữ liệu hiện tại, hãy sử dụng phương pháp

show dbs

49

db

4

Lệnh có thể xuất nhiều thông tin hơn mức bạn có thể dễ dàng sử dụng, nhưng có chứa, nhưng hữu ích trong một số tình huống khi bạn cần xem xét kỹ các đặc điểm của bộ sưu tập

Cách tạo bộ sưu tập

Để tạo một bộ sưu tập mới, có hai tùy chọn. bạn có thể tạo các bộ sưu tập ngầm hoặc rõ ràng

Cũng giống như cơ sở dữ liệu, MongoDB có thể tự động tạo các bộ sưu tập khi lần đầu tiên một tài liệu được ghi vào chúng. Phương thức này yêu cầu MongoDB tạo một bộ sưu tập mới bằng cách chèn một tài liệu vào một bộ sưu tập chưa tồn tại

Chẳng hạn, chúng ta có thể thay đổi lại cơ sở dữ liệu

show dbs

40 mà chúng ta quan tâm trước đó. Khi chúng tôi ở trong không gian tên đó, chúng tôi có thể chèn một tài liệu mới vào bộ sưu tập bằng cách gọi lệnh

show dbs

51 trên tên mà chúng tôi muốn sử dụng cho bộ sưu tập mới. Tại đây, chúng ta có thể tạo một tài liệu về một slide trong bộ sưu tập mới có tên là

show dbs

52

db

5

db

6

Đầu ra chỉ ra rằng một tài liệu đã được viết. Lệnh trên đã thực hiện ba hành động riêng biệt. Đầu tiên, MongoDB đã tạo cơ sở dữ liệu

show dbs

40 mà chúng tôi đã tham chiếu trong lệnh

switched to db admin

7 của mình. Nó cũng tạo bộ sưu tập

show dbs

52 trong cơ sở dữ liệu vì chúng tôi gọi lệnh

show dbs

56 trên tên bộ sưu tập đó. Cuối cùng, nó tạo tài liệu thực tế trong bộ sưu tập

show dbs

52 bằng cách sử dụng đầu vào mà chúng tôi đã cung cấp cho lệnh

show dbs

56

Bạn có thể xác minh rằng tất cả các hành động này đã được thực hiện bằng các lệnh sau

db

7

Đầu ra sẽ cho thấy rằng cơ sở dữ liệu

show dbs

40 hiện nằm trong số các cơ sở dữ liệu được liệt kê, rằng bộ sưu tập

show dbs

52 được liệt kê, rằng có một tài liệu trong bộ sưu tập

show dbs

81 và tài liệu đó là tài liệu

show dbs

82 mà chúng tôi đã chèn vào lệnh

Tùy chọn khác để sử dụng để tạo bộ sưu tập là sử dụng rõ ràng phương thức

show dbs

83. Điều này cho phép bạn tạo các bộ sưu tập mà không cần thêm bất kỳ tài liệu nào vào chúng

Ví dụ: bạn có thể tạo một bộ sưu tập mới trong cơ sở dữ liệu

show dbs

40 có tên là

show dbs

85 bằng cách nhập

db

8

db

9

Chúng tôi có thể xác minh rằng bộ sưu tập mới hiển thị khi chúng tôi truy vấn nhưng bộ sưu tập đó không có tài liệu

test

0

test

1

Phương pháp

show dbs

83 chủ yếu hữu ích vì nó cho phép bạn chỉ định các tùy chọn khác nhau khi tạo. Ví dụ: chúng tôi có thể muốn tạo một bộ sưu tập tạo capped, là một bộ sưu tập duy trì giới hạn trên đối với kích thước được phân bổ mà nó lưu trữ bằng cách xóa tài liệu cũ nhất của nó khi đầy

Để tạo một bộ sưu tập giới hạn có tên là

show dbs

87 có thể lưu trữ tối đa 10240 byte thông tin, bạn có thể gọi

test

2

test

3

Điều này sẽ tạo ra một bộ sưu tập

show dbs

88 giới hạn, chúng tôi có thể xác minh bằng cách nhập

test

4

test

5

Cách xóa bộ sưu tập

Để xóa một bộ sưu tập, bạn có thể sử dụng phương pháp

show dbs

89 trên chính bộ sưu tập đó

Ví dụ: để xóa bộ sưu tập

show dbs

87 giới hạn mà chúng tôi đã tạo, bạn có thể nhập

test

6

test

7

Bạn có thể xác minh rằng thao tác đã thành công bằng cách liệt kê lại các bộ sưu tập trong cơ sở dữ liệu hiện tại

test

8

test

9

Cách xóa cơ sở dữ liệu

Để xóa toàn bộ cơ sở dữ liệu, hãy gọi lệnh

show dbs

91. Thao tác này sẽ xóa cơ sở dữ liệu hiện tại, vì vậy hãy chắc chắn rằng bạn đang truy cập đúng cơ sở dữ liệu trước khi thực hiện

show dbs

10

show dbs

11

Nếu bạn kiểm tra danh sách cơ sở dữ liệu có sẵn,

show dbs

40 không còn hiển thị nữa

show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

Vì chúng tôi chưa chuyển sang cơ sở dữ liệu mới, MongoDB vẫn được thiết lập để tạo cơ sở dữ liệu

show dbs

40 nếu chúng tôi chọn thêm bộ sưu tập hoặc tài liệu mới. Bạn có thể xác minh điều này bằng lệnh

switched to db admin

3

db

admin 0.000GB

config 0.000GB

local 0.000GB

1

Phần kết luận

Tạo và quản lý cơ sở dữ liệu và bộ sưu tập là một kỹ năng quan trọng khi sử dụng MongoDB. Các công cụ tổ chức cơ bản này cho phép bạn nhóm các tài liệu liên quan lại với nhau, truy vấn các tập hợp con thông tin và thiết lập chính sách ủy quyền cho các loại dữ liệu khác nhau. Làm quen với cách quản lý hiệu quả các cấu trúc này sẽ cho phép bạn quản lý dữ liệu của mình hiệu quả hơn với ít bất ngờ hơn

LIÊN QUAN ĐẾN PRISMA. IO

Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất

Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có

Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu

Câu hỏi thường gặp

Bạn có thể tạo nhiều bộ sưu tập trong MongoDB không?

Có, bạn có thể có nhiều bộ sưu tập trong cơ sở dữ liệu trong MongoDB. Các bộ sưu tập có thể được coi là tương tự như các bảng trong cơ sở dữ liệu quan hệ

Làm cách nào để xóa tất cả cơ sở dữ liệu trong MongoDB?

Không có một lệnh nào để loại bỏ mọi cơ sở dữ liệu trong MongoDB, nhưng có thể thực hiện được với một tập lệnh hoặc một loạt truy vấn

Để loại bỏ một cơ sở dữ liệu, cú pháp cơ bản trông giống như

show dbs

10

Làm cách nào để bạn đổi tên một bộ sưu tập trong MongoDB?

Để đổi tên một bộ sưu tập trong MongoDB, bạn có thể sử dụng phương pháp

show dbs

95

Cú pháp cơ bản sẽ giống như

show dbs

17

Với

show dbs

96 là tên hiện tại của bộ sưu tập và

show dbs

97 là thay đổi mong muốn

Làm cách nào để bạn liệt kê tất cả các bộ sưu tập trong MongoDB?

Bạn có thể hiển thị tất cả các bộ sưu tập có sẵn trong cơ sở dữ liệu mà bạn đang làm việc của tôi bằng cách sử dụng phương pháp

show dbs

42

Nếu bạn muốn xem tất cả các bộ sưu tập trong cơ sở dữ liệu

show dbs

43, cú pháp cơ bản sẽ như sau

Chúng tôi có thể truy vấn nhiều bộ sưu tập trong MongoDB không?

Tập hợp — như nghĩa đen cho thấy nó liên quan đến việc kết hợp nhiều thứ khác nhau, tương tự như vậy trong MongoDb tập hợp là một kỹ thuật để truy vấn dữ liệu từ nhiều tập hợp bằng cách nhóm hoặc nối chúng, sau đó thực hiện nhiều thao tác khác nhau [được giải thích sau trong tài liệu này] rồi trả về kết quả được tính toán

Làm cách nào để lấy dữ liệu từ hai bộ sưu tập trong cầy mangut?

Mongoose - truy vấn để lấy dữ liệu từ nhiều bộ sưu tập .
người dùng. js var mongoose = require['mongoose']; . Lược đồ; . .
bình luận. js var mongoose = require['mongoose']; . Lược đồ; . .
bưu kiện. js var mongoose = require['mongoose'];

Làm cách nào để lấy dữ liệu từ bộ sưu tập trong MongoDB?

Để chọn dữ liệu từ một bộ sưu tập trong MongoDB, chúng ta có thể sử dụng phương thức findOne[] . Phương thức findOne[] trả về lần xuất hiện đầu tiên trong vùng chọn. Tham số đầu tiên của phương thức findOne[] là một đối tượng truy vấn.

Chủ Đề