Làm cách nào để truy vấn giữa các ngày trong MongoDB?

Trong bài viết này, vấn đề tìm kiếm một đối tượng giữa hai ngày được thảo luận ngắn gọn. Hơn nữa, các toán tử

db.inventory.find( { quantity: { $gt: 20 } } )
0,
db.inventory.find( { quantity: { $gt: 20 } } )
1,
db.inventory.find( { quantity: { $gt: 20 } } )
2 và
db.inventory.find( { quantity: { $gt: 20 } } )
3 được sử dụng cho mục đích này được giải thích chi tiết ngắn gọn

Phần này sẽ hướng dẫn bạn cách viết truy vấn Phạm vi ngày MongoDB để truy xuất dữ liệu dựa trên dấu thời gian hoặc phạm vi ngày. Ví dụ, truy vấn ngày trong MongoDB là ngày lớn hơn hoặc nhỏ hơn thời gian hoặc ngày

Để thực hiện truy vấn trong MongoDB bằng phạm vi ngày, hãy sử dụng cú pháp cơ bản được mô tả bên dưới

db.collection.find({
    day: {
        $gt: ISODate("2020-01-21"),
        $lt: ISODate("2020-01-24")
    }
})

Tất cả các mục trong bộ sưu tập có trường

db.inventory.find( { quantity: { $gt: 20 } } )
4 lớn hơn hoặc bằng
db.inventory.find( { quantity: { $gt: 20 } } )
5 nhưng nhỏ hơn hoặc bằng
db.inventory.find( { quantity: { $gt: 20 } } )
6 sẽ được truy vấn này trả về. Các bước được nêu ở trên rất đơn giản

Tuy nhiên, có một vài mâu thuẫn nhỏ trong các hướng này

db.inventory.find( { quantity: { $gt: 20 } } ) 2 trong MongoDB

cú pháp

Bởi vì giá trị

db.inventory.find( { quantity: { $gt: 20 } } )
8 lớn hơn (i. e. ,
db.inventory.find( { quantity: { $gt: 20 } } )
9)
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
0,
db.inventory.find( { quantity: { $gt: 20 } } )
2 được chỉ định chọn những tài liệu đó

Đối với hầu hết các loại dữ liệu, toán tử so sánh chỉ thực hiện so sánh trên các trường khi loại BSON khớp với loại của giá trị truy vấn. Tuy nhiên, loại dấu ngoặc của MongoDB cho phép so sánh giữa các BSON hạn chế

Các ví dụ dưới đây sử dụng bộ sưu tập

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
2. Đây là cơ sở dữ liệu mẫu sẽ được sử dụng bên dưới trong tất cả các ví dụ

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )

Khớp các trường tài liệu

Chọn tất cả các tài liệu trong bộ sưu tập

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
2 trong đó
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
4 lớn hơn
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
5

db.inventory.find( { quantity: { $gt: 20 } } )

đầu ra

Làm cách nào để truy vấn giữa các ngày trong MongoDB?

Ví dụ bên dưới đặt trường

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 dựa trên so sánh
db.inventory.find( { quantity: { $gt: 20 } } )
2 với một trường trong tài liệu được nhúng

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)

đầu ra

use gt operator 2

Hàm

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 này kiểm tra trường con
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 trong một tài liệu nhúng có tên là
db.inventory.find( { quantity: { $gte: 20 } } )
0. Tài liệu đầu tiên tìm thấy một giá trị cho một
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 lớn hơn 2 và đặt giá trị cho
db.inventory.find( { quantity: { $gte: 20 } } )
2

Để điều chỉnh giá trị của trường

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 trong tất cả các tài liệu khi
db.inventory.find( { quantity: { $gte: 20 } } )
4 lớn hơn 2, hãy sử dụng
db.inventory.find( { quantity: { $gte: 20 } } )
5

db.inventory.find( { quantity: { $gt: 20 } } ) 0 trong MongoDB

cú pháp

db.inventory.find( { quantity: { $gt: 20 } } )
0 chọn tài liệu có giá trị
db.inventory.find( { quantity: { $gt: 20 } } )
8 lớn hơn hoặc bằng (i. e.
db.inventory.find( { quantity: { $gte: 20 } } )
9) một giá trị nhất định (e. g.
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
0)

Đối với hầu hết các loại dữ liệu, toán tử so sánh chỉ thực hiện so sánh trên các trường khi loại BSON khớp với loại của giá trị truy vấn. Tuy nhiên, loại dấu ngoặc của MongoDB cho phép so sánh giữa các BSON hạn chế

Khớp các trường tài liệu

Chọn tất cả các tài liệu trong bộ sưu tập

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
2 với số lượng lớn hơn hoặc bằng
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
5

db.inventory.find( { quantity: { $gte: 20 } } )

đầu ra

use gte operator

Trường

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 được đặt bằng cách sử dụng so sánh
db.inventory.find( { quantity: { $gt: 20 } } )
0 với trường trong tài liệu được nhúng trong ví dụ sau

db.inventory.updateMany(
   { "carrier.fee": { $gte: 2 } }, { $set: { "price": 9.99 } }
)

đầu ra

use gte operator 2

Hàm

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 này kiểm tra trường con
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 trong một tài liệu nhúng có tên là
db.inventory.find( { quantity: { $gte: 20 } } )
0.
db.inventory.find( { quantity: { $gte: 20 } } )
2 được thêm vào mỗi tài liệu khi
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 có giá trị lớn hơn hoặc bằng 2

Sử dụng

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 để đặt giá trị của trường
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 chỉ trên trang đầu tiên khi
db.inventory.find( { quantity: { $gte: 20 } } )
4 lớn hơn 2

db.inventory.find( { quantity: { $gt: 20 } } ) 3 trong MongoDB

cú pháp

db.inventory.find( { quantity: { $gt: 20 } } )
3 chọn tài liệu có giá trị
db.inventory.find( { quantity: { $gt: 20 } } )
8 nhỏ hơn (hoặc bằng) giá trị
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
0 đã chỉ định

Đối với hầu hết các loại dữ liệu, toán tử so sánh chỉ thực hiện so sánh trên các trường khi loại BSON khớp với loại của giá trị truy vấn. Tuy nhiên, loại dấu ngoặc của MongoDB cho phép so sánh giữa các BSON hạn chế

Khớp các trường tài liệu

Chọn tất cả tài liệu trong bộ sưu tập

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
2 với số lượng ít hơn
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
5

db.inventory.find( { quantity: { $lt: 20 } } )

đầu ra

use lt operator

Trường

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 sẽ được đặt dựa trên so sánh
db.inventory.find( { quantity: { $gt: 20 } } )
3 với trường trong tài liệu được nhúng trong ví dụ sau

db.inventory.updateMany( { "carrier.fee": { $lt: 20 } }, { $set: { price: 9.99 } } )

đầu ra

use lt operator 2

Hàm

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 này kiểm tra trường con
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 trong một tài liệu nhúng có tên là
db.inventory.find( { quantity: { $gte: 20 } } )
0. Khi giá trị của
db.inventory.updateMany( { "carrier.fee": { $lt: 20 } }, { $set: { price: 9.99 } } )
4 nhỏ hơn 2, nó sẽ thêm
db.inventory.find( { quantity: { $gte: 20 } } )
2 vào mỗi bản ghi

Sử dụng

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 để đặt giá trị của trường
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 chỉ trên trang đầu tiên khi
db.inventory.find( { quantity: { $gte: 20 } } )
4 nhỏ hơn 2

db.inventory.find( { quantity: { $gt: 20 } } ) 1 trong MongoDB

cú pháp

db.inventory.find( { quantity: { $gt: 20 } } )
1 chọn tài liệu có giá trị
db.inventory.find( { quantity: { $gt: 20 } } )
8 nhỏ hơn hoặc bằng (i. e.
db.inventory.find( { quantity: { $lte: 20 } } )
2)
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
0 được chỉ định

Đối với hầu hết các loại dữ liệu, toán tử so sánh chỉ thực hiện so sánh trên các trường khi loại BSON khớp với loại của giá trị truy vấn. Tuy nhiên, loại dấu ngoặc của MongoDB cho phép so sánh giữa các BSON hạn chế

Khớp các trường tài liệu

Xem xét ví dụ sau

db.inventory.find( { quantity: { $lte: 20 } } )

Truy vấn này chọn tất cả các mục nhập trong bộ sưu tập

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
2 với giá trị trường số lượng nhỏ hơn hoặc bằng
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
5

đầu ra

use lte operator

Trường

db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 được đặt bằng cách sử dụng so sánh
db.inventory.find( { quantity: { $gt: 20 } } )
1 với trường trong tài liệu được nhúng trong ví dụ sau

db.inventory.updateMany(
   { "carrier.fee": { $lte: 5 } }, { $set: { price: 9.99 } }
)

đầu ra

use lte operator 2

Hàm

db.inventory.find( { quantity: { $gte: 20 } } )
5 này tìm trường con
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 trong một tài liệu nhúng có tên là
db.inventory.find( { quantity: { $gte: 20 } } )
0.
db.inventory.find( { quantity: { $gte: 20 } } )
2 được thêm vào mỗi chứng từ nếu
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
9 có giá trị nhỏ hơn hoặc bằng 5

Khi

db.inventory.find( { quantity: { $gte: 20 } } )
4 nhỏ hơn hoặc bằng 5, hãy sử dụng
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
8 để thay đổi giá trị của trường
db.inventory.updateOne(
   { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } }
)
6 chỉ trên trang đầu tiên

Thông tin sau đây giải thích cách áp dụng cú pháp này cho việc thu thập dữ liệu bằng các tài liệu đi kèm

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
0

Sử dụng truy vấn bên dưới để tìm tất cả các tài liệu có trường

db.inventory.find( { quantity: { $gt: 20 } } )
4 giữa hai ngày

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
1

Truy vấn trên trả về các tài liệu sau như hình bên dưới

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
2

Sử dụng truy vấn bên dưới để tìm tất cả các tài liệu có trường

db.inventory.find( { quantity: { $gt: 20 } } )
4 được đặt thành ngày sau ngày đã chỉ định

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
3

Truy vấn trên trả về các tài liệu sau

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
4

Sử dụng truy vấn bên dưới để tìm tất cả các tài liệu có trường

db.inventory.find( { quantity: { $gt: 20 } } )
4 được đặt thành trước một ngày cụ thể

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
5

Truy vấn trên trả về các tài liệu sau

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
6

Hãy xem cách trả về một truy vấn tùy thuộc vào ngày bằng MongoDB

Tạo một bộ sưu tập có tên là

db.inventory.updateMany(
   { "carrier.fee": { $lte: 5 } }, { $set: { price: 9.99 } }
)
9 bằng cách sử dụng tài liệu để nắm bắt ý tưởng tốt hơn. Sau đây là truy vấn để tạo bộ sưu tập chứa bản ghi

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
7

Sử dụng chức năng

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
00, tất cả các tài liệu trong một bộ sưu tập sẽ được chọn. Sau đây là truy vấn cho điều này

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
8

Truy vấn trên sẽ trả về các tài liệu sau, như thể hiện trong ảnh chụp màn hình bên dưới

Return query

Sau đây là truy vấn trả về dựa trên ngày. Hồ sơ có ngày tạo sau ngày

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
01 sẽ được gọi là

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
9

Truy vấn này trả về các tài liệu sau, như được hiển thị trong ảnh chụp màn hình bên dưới

Return query 1

Vì vậy, thông qua sự trợ giúp của bài viết này, người dùng đã biết thông tin về cách sử dụng phương pháp

db.inventory.insertMany( [
   {
      "item": "nuts", "quantity": 31,
      "carrier": { "name": "import", "fee": 3 }
   },
   {
      "item": "screws", "quantity": 50,
      "carrier": { "name": "import", "fee": 4 }
   },
   {
      "item": "washers", "quantity": 11,
      "carrier": { "name": "import", "fee": 1 }
   }
] )
02. Ví dụ giải thích ngắn gọn các lệnh
db.inventory.find( { quantity: { $gt: 20 } } )
0 và
db.inventory.find( { quantity: { $gt: 20 } } )
1

Làm cách nào để lấy dữ liệu giữa hai ngày trong MongoDB?

Bạn có thể sử dụng Truy vấn cho Phạm vi khi bạn muốn lấy dữ liệu giữa hai ngày. Đây là về truy vấn dữ liệu cho một loạt các giá trị.

Làm cách nào để truy vấn theo ngày trong MongoDB?

MongoDB date sẽ trả về ngày hiện tại dưới dạng đối tượng ngày và trình bao mongo sẽ bọc đối tượng ngày bằng trình trợ giúp cô lập trong MongoDB. Chúng ta có thể chỉ định ngày cụ thể bằng cách chuyển ngày dưới dạng chuỗi ngày ISO-8601 và chuỗi này được sử dụng với phạm vi từ 0 đến 9999 cho hàm date() mới trong MongoDB.

Làm cách nào để truy vấn lớn hơn ngày trong MongoDB?

Ngày là sử dụng toán tử lớn hơn bằng “$gte” và chỉ định toán tử $gte là ISODate bằng cách sử dụng từ khóa mới . Sau đó, phương thức đẹp đó được sử dụng ở cuối truy vấn để hiển thị kết quả ở định dạng dễ dàng hơn. Ngày được trả về bởi truy vấn trên được hiển thị trong ảnh chụp nhanh sau.

Làm cách nào để so sánh ngày trong la bàn MongoDB?

Bằng cách chỉ định loại Ngày trong cả start_date và toán tử so sánh $gt , Compass thực hiện phép so sánh lớn hơn theo thứ tự thời gian, trả lại tài liệu có start_date muộn hơn ngày 05-01-2017.