Mongodb lấy giá trị của một trường

Trong MongoDB, chúng ta có thể kiểm tra sự tồn tại của trường trong bộ sưu tập được chỉ định bằng toán tử $exists. Khi giá trị của toán tử $exists được đặt thành true, thì toán tử này khớp với tài liệu chứa trường đã chỉ định (bao gồm cả tài liệu có giá trị của trường đó là null). Khi giá trị của toán tử $exists được đặt thành false, thì toán tử này chỉ trả về những tài liệu không chứa trường đã chỉ định.  

Tham số đầu tiên của phương thức find() là một đối tượng truy vấn. Trong ví dụ này, chúng tôi sử dụng một đối tượng truy vấn trống để chọn tất cả các tài liệu trong bộ sưu tập

Không có tham số nào trong phương thức find() cho bạn kết quả giống như SELECT * trong MySQL

Thí dụ

Trả lại tất cả tài liệu trong bộ sưu tập "khách hàng" và in từng tài liệu

pymongo nhập khẩu

myclient = pymongo. MongoClient("mongodb. //máy chủ cục bộ. 27017/")
mydb = myclient["cơ sở dữ liệu của tôi"]
mycol = mydb["khách hàng"]

cho x trong mycol. tìm thấy()
in(x)

Chạy ví dụ »


Học cách lọc dữ liệu bằng Python như một nhà phân tích dữ liệu

Mongodb lấy giá trị của một trường

Thử tham gia các buổi đào tạo thực hành với hướng dẫn từng bước từ chuyên gia. Hãy thử dự án có hướng dẫn được thực hiện với sự cộng tác của Coursera ngay bây giờ

Get started


Chỉ trả về một số trường

Tham số thứ hai của phương thức find() là một đối tượng mô tả những trường nào sẽ được đưa vào kết quả

Tham số này là tùy chọn và nếu bỏ qua, tất cả các trường sẽ được đưa vào kết quả

Thí dụ

Chỉ trả lại tên và địa chỉ, không phải _ids

pymongo nhập khẩu

myclient = pymongo. MongoClient("mongodb. //máy chủ cục bộ. 27017/")
mydb = myclient["cơ sở dữ liệu của tôi"]
mycol = mydb["khách hàng"]

cho x trong mycol. tìm ID". 0, "tên". 1, "địa chỉ". 1 })
in(x)

Chạy ví dụ »

Bạn không được phép chỉ định cả hai giá trị 0 và 1 trong cùng một đối tượng (trừ khi một trong các trường là trường _id). Nếu bạn chỉ định một trường có giá trị 0, tất cả các trường khác sẽ nhận giá trị 1 và ngược lại

Thí dụ

Ví dụ này sẽ loại trừ "địa chỉ" khỏi kết quả

pymongo nhập khẩu

myclient = pymongo. MongoClient("mongodb. //máy chủ cục bộ. 27017/")
mydb = myclient["cơ sở dữ liệu của tôi"]
mycol = mydb["khách hàng"]

cho x trong mycol. tìm địa chỉ". 0 })
in(x)

Chạy ví dụ »

Thí dụ

Bạn gặp lỗi nếu chỉ định cả hai giá trị 0 và 1 trong cùng một đối tượng (ngoại trừ nếu một trong các trường là trường _id)

Giả sử chúng ta có một bộ sưu tập có nhiều dữ liệu trong một tài liệu. Chúng tôi có một bộ sưu tập countries. Chúng tôi sẽ chỉ chọn một vài lĩnh vực chúng tôi muốn,

Bây giờ, tôi chỉ muốn chọn trường name và chỉ hiển thị kết quả với trường name

Để làm được điều đó, trước tiên chúng ta cần hiểu cú pháp truy vấn mongoDB

Bạn có thể truyền tham số thứ hai cho phương thức find. Nó cũng sẽ hoạt động cho findOne

Bây giờ, hãy chọn trường name. Ở đây bạn cần học thêm một thủ thuật nữa, Key sẽ là trường bạn muốn chọn, còn giá trị thì sao? . 0 để bỏ chọn một trường

Hãy xem nó như một ví dụ

Chỉ chọn trường tên quốc gia

Ở đây chúng tôi chỉ chọn thành công trường name. Chờ đợi?

theo mặc định, truy vấn mongo sẽ luôn bao gồm trường _id

Bỏ chọn bất kỳ trường nào

Hãy bỏ chọn trường _id, nó cũng giống như vậy,

Hy vọng bạn thấy loạt bài hướng dẫn này hữu ích. Tiếp theo chúng ta sẽ tìm hiểu sâu hơn về series này. Chia sẻ nó với các nhóm của bạn và học tập vui vẻ 🤗

Để tìm nạp các giá trị trường cụ thể, hãy sử dụng toán tử $in. $in chọn 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

Trước tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu -

> db.indexesDemo.createIndex({"StudentFirstName":1});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
> db.indexesDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06de4d25ddae1f53b621dd")
}
> db.indexesDemo.insertOne({"StudentFirstName":"Chris","StudentLastName":"Brown"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06de5825ddae1f53b621de")
}
> db.indexesDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Doe"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06de6725ddae1f53b621df")
}
> db.indexesDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06de7225ddae1f53b621e0")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find() -

> db.indexesDemo.find();

Điều này sẽ tạo ra đầu ra sau -

{ "_id" : ObjectId("5e06de4d25ddae1f53b621dd"), "StudentFirstName" : "John", "StudentLastName" : "Smith" }
{ "_id" : ObjectId("5e06de5825ddae1f53b621de"), "StudentFirstName" : "Chris", "StudentLastName" : "Brown" }
{ "_id" : ObjectId("5e06de6725ddae1f53b621df"), "StudentFirstName" : "John", "StudentLastName" : "Doe" }
{ "_id" : ObjectId("5e06de7225ddae1f53b621e0"), "StudentFirstName" : "David", "StudentLastName" : "Miller" }

Sau đây là truy vấn tới các chỉ mục -

> db.indexesDemo.find(
.. { StudentFirstName: { $in: [ "John", "David" ] } },
.. { _id: 0, StudentLastName: 0 }
.. );

Điều này sẽ tạo ra đầu ra sau -

{ "StudentFirstName" : "David" }
{ "StudentFirstName" : "John" }
{ "StudentFirstName" : "John" }

Mongodb lấy giá trị của một trường


Mongodb lấy giá trị của một trường

Làm cách nào để lấy giá trị của một trường trong MongoDB?

Bạn có thể sử dụng $getField để truy xuất giá trị của các trường có tên chứa dấu chấm (. ) hoặc bắt đầu bằng ký hiệu đô la ($ ).

Làm cách nào để lấy giá trị của khóa trong MongoDB?

Có hai cách để thực hiện truy vấn OR trong MongoDB. "$in" có thể được sử dụng để truy vấn nhiều giá trị cho một khóa duy nhất . "$or" là tổng quát hơn; . Điều này khớp với các tài liệu có "user_id" bằng 12345 và các tài liệu có "user_id" bằng "joe".

Làm cách nào để lấy giá trị 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.

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

Toán tử đẳng thức ($eq ) được sử dụng để so khớp các tài liệu trong đó giá trị của trường bằng với giá trị đã chỉ định . Nói cách khác, toán tử $eq được sử dụng để xác định điều kiện bình đẳng. Điểm quan trọng. Nếu giá trị đã cho là một tài liệu, thì thứ tự của các trường trong tài liệu là quan trọng.