Tôi có một tài liệu như dưới đây:
{
"user_id": NumberLong[1],
"updated_at": ISODate["2016-11-17T09:35:56.200Z"],
"created_at": ISODate["2016-11-17T09:35:07.981Z"],
"banners": {
"normal_x970h90": "/images/banners/4/582d79cb3aef567d64621be9/photo-1440700265116-fe3f91810d72.jpg",
"normal_x468h60": "/images/banners/4/582d79cb3aef567d64621be9/photo-1433354359170-23a4ae7338c6.jpg",
"normal_x120h600": "/images/banners/4/582d79cb3aef567d64621be9/photo-1452570053594-1b985d6ea890.jpg"
},
"name": "jghjghjghj",
"budget": "2000",
"plan": null,
"daily_budget": "232323",
"daily_budget_auto": "",
"href": "qls2.ir",
"targets": {
"cats": [
"fun",
"news"
],
"region": "inIran",
"iran_states": null,
"os": "all",
"gold_network": true,
"dont_show_between_1_n_8": true
},
"payment": {
"bank": "mellat",
"tax": "add"
},
"click_cost": "102000",
"status": null
}
Tôi muốn kiểm tra xem budget
có thấp hơn click_cost
không trong khi tôi đang kiểm tra một số tham số khác trong truy vấn của mình:
db.bcamp.aggregate[
[
{
$match:{
$and: [
{"targets.cats":{
"$in" : ["all"]
}
},
{"banners.normal_x970h90":{
"$exists":true
}
},
{"href": {
$nin: ["qls.ir"]
}
}
]
}
}
]].pretty[];
Tôi đã thử so sánh phương thức như:
db.bcamp.aggregate[
[
{$project: {ab: {$cmp: ['$budget','$clickcost']}}},
{$match: {ab:{$gt:1}}}
]].pretty[];
Nhưng tôi đã nhận được kết quả sai, nó luôn trả về 4 tài liệu mà ngân sách của họ có thể hoặc không phải là người nặng hơn click_cost, điều đó có nghĩa là nó lấy dữ liệu sai.
Làm thế nào tôi có thể thêm so sánh đó với đường ống MongoDB của tôi?
MongoDB phù hợp với nhiều trường với các ví dụ mã
Trong hướng dẫn này, chúng tôi sẽ cố gắng tìm giải pháp cho MongoDB phù hợp với nhiều trường thông qua lập trình. Mã sau đây minh họa điều này.
$match: { $and: [ {'ExtraFields.value': {$in: ["A52A2A"]}}, {'ExtraFields.fieldID': ObjectId["5535627631efa0843554b0ea"]} ] }
Bạn sẽ thấy một số ví dụ về các cách khác nhau để giải quyết vấn đề của MongoDB phù hợp với nhiều vấn đề trong bài viết này.
db.collection2.aggregate[[ { $lookup: { from: "collection1", let: { firstUser: "$user1", secondUser: "$user2" }, pipeline: [ { $match: { $expr: { $and: [ { $eq: [ "$user1", "$$firstUser" ] }, { $eq: [ "$user2", "$$secondUser" ] } ] } } } ], as: "result" } }, { $replaceRoot: { newRoot: { $mergeObjects:[ { $arrayElemAt: [ "$result", 0 ] }, { percent1: "$$ROOT.percent1" } ] } } } ] ]
Sử dụng nhiều ví dụ, chúng tôi đã học được cách giải quyết vấn đề của MongoDB phù hợp với nhiều trường.
Làm cách nào để khớp với nhiều trường trong MongoDB?
“MongoDB phù hợp với nhiều trường” mã câu trả lời
- $match:
- {
- $ và: [
- {'Extrafields.value': {$ in: ["A52a2a"]}},
- {'Extrafields.FieldId': ObjectID ["5535627631EFA0843554B0EA"]}
- ]
- }
Làm cách nào để truy vấn nhiều mục trong MongoDB?
Truy vấn MongoDB Tìm nhiều giá trị.
- Nhấp vào nút Tùy chọn thả xuống ở phía bên trái của nút Tìm.
- Và nó cung cấp nhiều tùy chọn khác nhau có thể thực hiện bộ lọc, dự án, sắp xếp và đối chiếu.
- Bây giờ, chúng tôi xác định sau hai truy vấn và tìm nhiều giá trị từ các tài liệu theo điều kiện.
$ Match làm gì trong MongoDB?
Toán tử MongoDB $ MAT
Làm thế nào để tôi viết nhiều điều kiện trong MongoDB?
Trong MongoDB, chúng ta có thể áp dụng nhiều điều kiện bằng cách sử dụng và toán tử. Bằng cách áp dụng và hoạt động, chúng tôi sẽ chọn tất cả các tài liệu đáp ứng tất cả các biểu thức điều kiện. Chúng ta có thể sử dụng toán tử này trong các phương thức như find [], update [], v.v. theo yêu cầu.24-sept-2021
Làm cách nào để cập nhật nhiều trường trong MongoDB?
Trong MongoDB, bạn có thể cập nhật nhiều tài liệu trong bộ sưu tập bằng DB. thu thập. Phương thức Updatemany [].
- Phương thức Updatemany [] có thể được sử dụng trong các giao dịch đa tài liệu.
- Khi bạn cập nhật tài liệu của mình, giá trị của trường _ID không thay đổi.
- Nó cũng thêm các trường mới trong các tài liệu.
$ Expr trong MongoDB là gì?
$ expr có thể xây dựng các biểu thức truy vấn so sánh các trường từ cùng một tài liệu trong giai đoạn Match $. Nếu giai đoạn $ Match là một phần của giai đoạn tra cứu $, $ expr có thể so sánh các trường bằng các biến LET. Xem thực hiện nhiều lần tham gia và một truy vấn con tương quan với $ Tra cứu cho một ví dụ.
Làm cách nào để truy vấn một loạt các đối tượng trong MongoDB?
Để tìm kiếm mảng đối tượng trong MongoDB, bạn có thể sử dụng toán tử elemmatch $. Toán tử này cho phép chúng tôi tìm kiếm nhiều hơn một thành phần từ một đối tượng mảng.30-jul-2019
Làm cách nào để tìm kiếm một lĩnh vực cụ thể trong MongoDB?
Bạn có thể chọn một trường duy nhất trong MongoDB bằng cú pháp sau: DB. YourCollectionName. find [{"yourFieldName": yourValue}, {"yoMingleingFieldName": 1, _id: 0}]; 30-jul-2019
Làm thế nào để tôi sử dụng $ trong MongoDB?
Sử dụng toán tử $ trong để khớp các giá trị truy vấn này chọn tất cả các tài liệu trong bộ sưu tập kiểm kê trong đó giá trị của trường số lượng là 5 hoặc 15. Mặc dù bạn có thể viết truy vấn này bằng cách sử dụng toán tử hoặc toán tử, hãy sử dụng toán tử $ trong toán tử thay vì $ hoặc toán tử khi thực hiện kiểm tra bình đẳng trên cùng một trường.
Tập hợp MongoDB có nhanh không?
Trên các bộ sưu tập lớn hàng triệu tài liệu, tập hợp của MongoDB được chứng minh là tồi tệ hơn nhiều so với Elaticsearch. Hiệu suất xấu đi với kích thước thu thập khi MongoDB bắt đầu sử dụng đĩa do RAM hệ thống hạn chế. Giai đoạn tra cứu $ được sử dụng mà không có chỉ mục có thể rất chậm.04-NOV-2021