Làm cách nào để truy cập các truy vấn trong MongoDB?

Trong bài viết này, chúng tôi sẽ giải quyết cách thực hiện các thao tác truy vấn cơ bản trong MongoDB. Chúng tôi đang sản xuất dữ liệu với tốc độ chưa từng có sau sự lan rộng toàn cầu của internet. Vì nó sẽ yêu cầu chúng tôi thu thập/yêu cầu dữ liệu cần thiết từ cơ sở dữ liệu để tiến hành một số loại phân tích, điều cực kỳ quan trọng là chúng tôi phải chọn đúng công cụ để truy vấn dữ liệu

Đây là nơi MongoDB xuất hiện, cụ thể. MongoDB là một cơ sở dữ liệu phi cấu trúc, ở dạng tài liệu, lưu trữ dữ liệu. Ngoài ra, MongoDB rất hiệu quả trong việc xử lý lượng dữ liệu khổng lồ và là cơ sở dữ liệu NoSQL được sử dụng phổ biến nhất vì nó cung cấp ngôn ngữ truy vấn phong phú và khả năng truy cập dữ liệu linh hoạt và dễ dàng

Tạo cơ sở dữ liệu mẫu

Trước khi bắt đầu, chúng tôi sẽ tạo một DB mẫu với một số dữ liệu mẫu để thực hiện tất cả các thao tác

Chúng tôi sẽ tạo một cơ sở dữ liệu có tên myDB và sẽ tạo một bộ sưu tập với thứ tự tên. Đối với điều này, tuyên bố sẽ như sau

> use myDB
> db.createCollection("orders")
>

MongoDB không sử dụng các hàng và cột. Nó lưu trữ dữ liệu ở định dạng tài liệu. Một bộ sưu tập là một nhóm các tài liệu

Bạn có thể kiểm tra tất cả các bộ sưu tập trong cơ sở dữ liệu bằng cách sử dụng câu lệnh sau

> use myDB
>show collections
orders
system.indexes
>

Hãy chèn một số tài liệu bằng cách sử dụng câu lệnh sau

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])

Một tài liệu tương đương với một hàng RDBMS. Nó không cần phải có cùng một lược đồ trong mỗi tài liệu. Điều đó có nghĩa là một tài liệu có thể không có bất kỳ trường nào không có bất kỳ giá trị nào

Tài liệu truy vấn

phương thức tìm()

Bạn cần sử dụng phương thức find() để truy vấn tài liệu từ bộ sưu tập MongoDB. Câu lệnh sau sẽ lấy tất cả các tài liệu từ bộ sưu tập

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>

chiếu

Nếu bạn chỉ muốn tìm nạp các trường đã chọn thì bạn có thể sử dụng phép chiếu. Câu lệnh sau sẽ chỉ tìm nạp trường Khách hàng và Email

> db.orders.find( { }, { Customer: 1, Email: 1 })
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Email:"[email protected]"
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz"		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Email:"[email protected]"		
	}
>

Lọc tài liệu bằng cách chỉ định một điều kiện

Bây giờ chúng ta sẽ tìm hiểu cách chúng ta có thể tìm nạp các tài liệu phù hợp với một điều kiện cụ thể. MongoDB cung cấp nhiều toán tử so sánh cho việc này

1. Toán tử $eq

Toán tử $eq kiểm tra sự bằng nhau của giá trị trường với giá trị đã chỉ định. Để tìm nạp đơn hàng trong đó PaymentMode là 'Thẻ', bạn có thể sử dụng câu lệnh sau

>db.orders.find( { PaymentMode: { $eq: "Card" } } )

Truy vấn này cũng có thể được viết như dưới đây

>db.orders.find( { PaymentMode: "Card" } )

Một câu lệnh SQL tương tự sẽ như sau

SELECT * FROM orders WHERE PaymentMode="Card"

Thí dụ

________số 8

Toán tử $eq với tài liệu được nhúng

Bạn có thể nhận thấy rằng chúng tôi đã chèn Địa chỉ tài liệu được nhúng trong bộ sưu tập Đơn hàng. Nếu bạn muốn tìm nạp đơn đặt hàng có Quốc gia là 'Ấn Độ', bạn có thể sử dụng ký hiệu dấu chấm như câu lệnh sau

>db.Orders.find( { "Address.Country": { $eq: "India" } } )

Truy vấn này cũng có thể được viết như dưới đây

> use myDB
>show collections
orders
system.indexes
>
0

Thí dụ

> use myDB
>show collections
orders
system.indexes
>
1

Toán tử $eq với mảng

Toán tử $eq sẽ truy xuất tất cả các tài liệu nếu điều kiện đã chỉ định là đúng với bất kỳ mục nào trong một mảng. Chúng tôi có một mảng OrderItems trong tài liệu. Nếu bạn muốn lọc các tài liệu trong đó 'giấy' cũng được sắp xếp thì câu lệnh sẽ như sau

> use myDB
>show collections
orders
system.indexes
>
2

Truy vấn này cũng có thể được viết như dưới đây

> use myDB
>show collections
orders
system.indexes
>
3

Thí dụ

> use myDB
>show collections
orders
system.indexes
>
4

2. Toán tử $gt

Bạn có thể sử dụng toán tử $gt để truy xuất các tài liệu có giá trị của trường lớn hơn giá trị đã chỉ định. Câu lệnh sau sẽ tìm nạp các tài liệu có OrderTotal lớn hơn 800

> use myDB
>show collections
orders
system.indexes
>
5

Một câu lệnh SQL tương tự sẽ như sau

> use myDB
>show collections
orders
system.indexes
>
6

Thí dụ

> use myDB
>show collections
orders
system.indexes
>
7

3. Toán tử $gte

Bạn có thể sử dụng toán tử $gte để truy xuất các tài liệu có giá trị của trường lớn hơn hoặc bằng giá trị đã chỉ định. Câu lệnh sau sẽ lấy các tài liệu trong đó OrderTotal lớn hơn hoặc bằng 800

> use myDB
>show collections
orders
system.indexes
>
8

Một câu lệnh SQL tương tự sẽ như sau

> use myDB
>show collections
orders
system.indexes
>
9

Thí dụ

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
0

4. Toán tử $lt

Bạn có thể sử dụng toán tử $lt để truy xuất các tài liệu có giá trị của trường nhỏ hơn giá trị đã chỉ định. Câu lệnh sau sẽ lấy các tài liệu có OrderTotal nhỏ hơn 800

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
1

Một câu lệnh SQL tương tự sẽ như sau

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
2

Thí dụ

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
3

4. Toán tử $lte

Bạn có thể sử dụng toán tử $lte để truy xuất các tài liệu có giá trị của trường nhỏ hơn hoặc bằng giá trị đã chỉ định. Câu lệnh sau sẽ lấy các tài liệu có OrderTotal nhỏ hơn hoặc bằng 800

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
4

Một câu lệnh SQL tương tự sẽ như sau

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
5

Thí dụ

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
6

5. Toán tử $ne

Bạn có thể sử dụng toán tử $ne để truy xuất tài liệu trong đó giá trị của trường không bằng giá trị đã chỉ định

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
7

Một câu lệnh SQL tương tự sẽ như sau

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
8

Thí dụ

> db.orders.insert([
	{
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]		
	}
])
9

6. toán tử $in

Bạn có thể sử dụng toán tử $in để truy xuất các tài liệu trong đó giá trị của một trường bằng với bất kỳ giá trị nào trong mảng đã chỉ định

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
0

Thí dụ

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
1

7. Toán tử $nin

Bạn có thể sử dụng toán tử $nin để truy xuất các tài liệu trong đó giá trị của một trường không bằng bất kỳ giá trị nào trong mảng đã chỉ định. Nó cũng sẽ chọn các tài liệu mà trường không tồn tại

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
2

Thí dụ

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
3

lập chỉ mục

Chúng tôi biết rằng lập chỉ mục là rất quan trọng nếu chúng tôi đang thực hiện các truy vấn trên cơ sở dữ liệu lớn. Nếu không lập chỉ mục, việc thực thi truy vấn có thể tốn kém. Chúng ta có thể thêm một chỉ mục tăng dần đơn giản trên một trường bằng cách sử dụng câu lệnh sau

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
4

MongoDB tạo một chỉ mục duy nhất trên trường ‘_id’ theo mặc định. Một chỉ mục duy nhất sẽ ngăn việc chèn hai tài liệu có cùng giá trị cho trường đó. Nếu bạn muốn tạo một chỉ mục duy nhất thì câu lệnh sẽ như sau

> db.orders.find()
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607534c")
		Customer: "abc",
		Address:{"City":"Jaipur","Country":"India"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 1000.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":10},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"journal","Price":"200.00","Qty":2},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]		
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607544c"),
		Customer: "xyz",
		Address:{"City":"Delhi","Country":"India"},
		PaymentMode":"Cash",
		OrderTotal: 800.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"paper","Price":"10.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":500}
		]
	},
	{
		"_id" : ObjectId("5dd4e2cc0821d3b44607644c"),
		Customer: "ron",
		Address:{"City":"New York","Country":"USA"},
		PaymentMode":"Card",
		Email:"[email protected]",
		OrderTotal: 600.00,
		OrderItems:[
			{"ItemName":"notebook","Price":"150.00","Qty":5},
			{"ItemName":"postcard","Price":"10.00","Qty":00}
		]
	}
>
5

Sự kết luận

Tôi hy vọng bạn đã học được điều gì đó mới hôm nay. Nếu bạn muốn tìm hiểu thêm một số nội dung trên MongoDB, đây là một bài viết thú vị về MongoDB tự lưu trữ. Tôi cũng mời bạn tự mình thử nội dung và chia sẻ kinh nghiệm của bạn trong phần nhận xét. Hơn nữa, nếu bạn gặp phải bất kỳ vấn đề nào với bất kỳ định nghĩa nào ở trên, vui lòng hỏi tôi trong phần bình luận bên dưới

Các truy vấn trong MongoDB ở đâu?

Định nghĩa. Sử dụng toán tử $where để chuyển một chuỗi chứa biểu thức JavaScript hoặc hàm JavaScript đầy đủ tới hệ thống truy vấn . $where cung cấp tính linh hoạt cao hơn nhưng yêu cầu cơ sở dữ liệu xử lý biểu thức hoặc hàm JavaScript cho từng tài liệu trong bộ sưu tập.

Truy vấn được thực hiện như thế nào trong MongoDB?

điều kiện tiên quyết
Bước 1 — Chuẩn bị cơ sở dữ liệu mẫu
Bước 2 — Truy vấn các trường riêng lẻ
Bước 3 — Sử dụng Nhiều Điều kiện
Bước 4 - Truy vấn giá trị mảng
Bước 5 — Truy vấn các trường trong tài liệu lồng nhau
Bước 6 — Trả về một tập hợp con các trường
Bước 7 — Sử dụng con trỏ để sắp xếp và giới hạn kết quả truy vấn

MongoDB có truy vấn không?

Truy vấn MongoDB mang lại sự đơn giản trong quá trình tìm nạp dữ liệu từ cơ sở dữ liệu, tương tự như truy vấn SQL trong ngôn ngữ Cơ sở dữ liệu SQL. Trong khi thực hiện thao tác truy vấn, người ta cũng có thể sử dụng tiêu chí hoặc điều kiện có thể được sử dụng để truy xuất dữ liệu cụ thể từ cơ sở dữ liệu.

Làm cách nào để truy cập dữ liệu trong MongoDB?

Bạn có thể truy cập MongoDB thông qua MongoDB Shell hoặc từ bên trong môi trường lập trình của mình bằng trình điều khiển MongoDB. Khi bạn đã bắt đầu một phiên bản MongoDB (tôi. e. bằng cách sử dụng lệnh mongod), bây giờ bạn có thể kết nối với phiên bản đó và bắt đầu làm việc với MongoDB