Tìm MongoDB nodejs
Phương thức find() cũng được sử dụng để lọc kết quả trên một tham số cụ thể. Bạn có thể lọc kết quả bằng cách sử dụng đối tượng truy vấn Show
Thí dụ Lọc các bản ghi để truy xuất nhân viên cụ thể có địa chỉ là "Delhi" Tạo một tệp js có tên "query1. js", có đoạn mã sau Mở command terminal và chạy lệnh sau Nút. js Bộ lọc MongoDB với biểu thức chính quyBạn cũng có thể sử dụng biểu thức chính quy để tìm chính xác những gì bạn muốn tìm kiếm. Biểu thức chính quy chỉ có thể được sử dụng để truy vấn chuỗi mongodb (npm) Tìm bộ sưu tập
Các hàm mongodb được sử dụng nhiều nhất
Phổ biến trong JavaScript
Kết quả cho truy vấn thực sự là một đối tượng con trỏ. Điều này có thể được sử dụng trực tiếp hoặc chuyển đổi thành một mảng var cursor = collection.find({}); cursor.each(...); Để cho biết trường nào phải hoặc không được trả lại giá trị trường có thể được sử dụng. Ví dụ: giá trị trường sau { "name": true, "title": true } truy xuất các trường tên và tiêu đề (và dưới dạng . _id) but not any others. Tìm lần xuất hiện đầu tiên với findOne()¶findOne là một phương thức thuyết phục tìm và trả về kết quả khớp đầu tiên của truy vấn trong khi find trả về thông thường . Sử dụng nó khi bạn chỉ mong đợi một bản ghi, chẳng hạn như khi truy vấn bằng _id hoặc một thuộc tính duy nhất khác. collection.findOne(query, [fields, [options]], callback); Ở đâu
Thí dụ collection.findOne({_id: doc_id}, function(err, document) { console.log(document.name); }); giá trị _id¶Mặc định _id là các giá trị băm nhị phân 12 byte. Bạn có thể thay đổi định dạng bằng các nhà máy sản xuất Khóa chính tùy chỉnh (xem Khóa chính tùy chỉnh trong cơ sở dữ liệu). Để coi các giá trị _id nhị phân này là các chuỗi, bạn nên chuyển đổi các giá trị nhị phân thành chuỗi hex. Điều này có thể được thực hiện với thuộc tính toHexString . var idHex = document._id.toHexString(); Chuỗi hex có thể được hoàn nguyên về dạng nhị phân (ví dụ: để thực hiện truy vấn) với ObjectID. tạoFromHexString {_id: ObjectID.createFromHexString(idHex)} Khi chèn bản ghi mới, bạn cũng có thể sử dụng các giá trị _id tùy chỉnh mà không cần phải là giá trị băm nhị phân, chẳng hạn như các chuỗi. collection.insert({_id: "abc", ...}); collection.findOne({_id: "abc"},...); Bằng cách này, không cần thiết phải chuyển đổi các giá trị _id thành chuỗi hex và ngược lại. Đối tượng truy vấn¶Đối tượng truy vấn đơn giản nhất là một đối tượng trống {} phù hợp với mọi bản ghi trong cơ sở dữ liệu. Để thực hiện một truy vấn đơn giản trong đó một trường phải khớp với một giá trị đã xác định, người ta có thể thực hiện điều đó đơn giản như ________số 8 Truy vấn này khớp với tất cả các bản ghi mà a) có các trường được gọi là tên trường và b) giá trị của nó là “giá trị trường” Ví dụ: nếu chúng tôi có một bộ sưu tập các bài đăng trên blog trong đó cấu trúc của các bản ghi là {title, tác giả, contents} and we want to retrieve all the posts for a specific author then we can do it like this: posts = pointer_to_collection; posts.find({author:"Daniel"}).toArray(function(err, results){ console.log(results); // output all records }); Nếu trường được truy vấn nằm bên trong một đối tượng thì cũng có thể được truy vấn. Ví dụ: nếu chúng ta có một bản ghi với cấu trúc sau var cursor = collection.find({}); cursor.each(...);0 Sau đó, chúng ta có thể truy vấn trường “tên” như thế này. {"người dùng. Tên". "Đa-ni-ên"} VÀ¶Nếu nhiều tên trường được chỉ định, thì đó là truy vấn AND var cursor = collection.find({}); cursor.each(...);1 Truy vấn Whis khớp với tất cả các bản ghi trong đó key1 là “value1” và key2 là “value2” HOẶC LÀ¶Các truy vấn OR phức tạp hơn một chút nhưng có thể thực hiện được với toán tử $or . Toán tử truy vấn lấy một mảng bao gồm một tập hợp các đối tượng truy vấn và ít nhất một trong số này phải khớp với tài liệu trước khi nó được truy xuất var cursor = collection.find({}); cursor.each(...);2 Truy vấn này phù hợp với tất cả các tài liệu mà tác giả là Daniel hoặc Jessica Để kết hợp các truy vấn AND và OR, bạn chỉ cần sử dụng $or như một trong các trường truy vấn thông thường var cursor = collection.find({}); cursor.each(...);3 Điều kiện¶Toán tử điều kiện < , <= , >, >= and != không thể được sử dụng trực tiếp vì định dạng đối tượng truy vấn không hỗ trợ nó nhưng có thể đạt được điều tương tự với các bí danh của chúng $lt, $lte, $gt, $gte and $ne. When a field value needs to match a conditional, the value must be wrapped into a separate object. var cursor = collection.find({}); cursor.each(...);4 Truy vấn này xác định rằng tên trường phải lớn hơn hoặc bằng 100 . Điều kiện cũng có thể được trộn lẫn để tạo phạm vi var cursor = collection.find({}); cursor.each(...);5 Biểu thức chính quy trong truy vấn¶Các giá trị trường được truy vấn cũng có thể được khớp với các biểu thức chính quy var cursor = collection.find({}); cursor.each(...);6 Toán tử truy vấn đặc biệt¶Ngoài OR và có điều kiện, còn có một số toán tử khác
Truy vấn bên trong đối tượng và mảng¶Nếu bạn có một tài liệu với các đối tượng/mảng lồng nhau thì các khóa bên trong các đối tượng lồng nhau này vẫn có thể được sử dụng cho các truy vấn Ví dụ với tài liệu sau var cursor = collection.find({}); cursor.each(...);7 không chỉ trường _id có thể được sử dụng làm trường truy vấn - mà cả tên . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. . Điều này có thể được thực hiện khi sử dụng tên trường lồng nhau dưới dạng chuỗi, nối với dấu chấm. and even title can be used. This can be done when using nested field names as strings, concated with periods. var cursor = collection.find({}); cursor.each(...);8 Hoạt động ngay cả bên trong mảng var cursor = collection.find({}); cursor.each(...);9 Tùy chọn truy vấn¶Các tùy chọn truy vấn xác định hành vi của truy vấn { "name": true, "title": true }0 Phân trang¶Có thể thực hiện phân trang với các tham số tùy chọn giới hạn và bỏ qua { "name": true, "title": true }1 truy xuất 10 phần tử bắt đầu từ 20 Sắp xếp¶Sắp xếp có thể đạt được với tham số tùy chọn sắp xếp nhận một mảng tùy chọn sắp xếp { "name": true, "title": true }2 Với một trường tăng dần, mảng có thể được thay thế bằng tên của trường { "name": true, "title": true }3 Giải thích¶Tham số tùy chọn explain biến truy vấn thành truy vấn giải thích. Con trỏ¶Các đối tượng con trỏ là kết quả cho các truy vấn và có thể được sử dụng để tìm nạp các trường riêng lẻ từ cơ sở dữ liệu Làm cách nào để sử dụng find() trong Nodejs?Phương thức find() trả về tất cả các lần xuất hiện trong vùng chọn . 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.
Làm cách nào để tìm tài liệu trong MongoDB Nodejs?Bạn có thể truy vấn một tài liệu trong bộ sưu tập với bộ sưu tập . phương thức findOne() . Phương thức findOne() sử dụng tài liệu truy vấn mà bạn cung cấp để chỉ khớp với tập hợp con của các tài liệu trong bộ sưu tập khớp với truy vấn.
Làm cách nào để truy vấn MongoDB bằng Nodejs?var http = yêu cầu('http'); var MongoClient = yêu cầu('mongodb'). MongoClient; MongoClient. kết nối (url, chức năng (err, db) { nếu (err) ném err; truy vấn var = { địa chỉ. /^L/ }; db. bộ sưu tập ("nhân viên"). tìm (truy vấn). . nếu (err) ném err; bảng điều khiển. nhật ký (kết quả); Làm cách nào để tìm dữ liệu trong MongoDB?Trong MongoDB, phương thức find() được sử dụng để chọn tài liệu trong bộ sưu tập và trả lại con trỏ cho tài liệu đã chọn . Con trỏ nghĩa là một con trỏ trỏ đến một tài liệu, khi chúng ta sử dụng phương thức find() nó sẽ trả về một con trỏ trên các tài liệu đã chọn và trả về từng cái một. |