Có, sử dụng toán tử $indexOfCP trong aggregation để kiểm tra chuỗi con. Tạo collection:
> db.patterDemo.insertOne({
"ClientName": "John", "ClientWebsiteName": "webbuziness.com/John/business"
});
{ "acknowledged": true, "insertedId": ObjectId("5cea40acef71edecf6a1f68d") }
> db.patterDemo.insertOne({
"ClientName": "Carol", "ClientWebsiteName": "solvecoding.com/business"
});
{ "acknowledged": true, "insertedId": ObjectId("5cea40acef71edecf6a1f68e") }
Hiển thị document (ví dụ output rút gọn):
{
"_id": ObjectId("5cea40acef71edecf6a1f68d"),
"ClientName": "John", "ClientWebsiteName": "abcd.com"
}
{
"_id": ObjectId("5cea40acef71edecf6a1f68e"),
"ClientName": "Carol", "ClientWebsiteName": "pqrs.com"
}
Truy vấn aggregate dùng $indexOfCP để tìm document mà ClientWebsiteName chứa ClientName:
> db.patterDemo.aggregate([
{ "$match": {
"$expr": {
"$ne": [
{ "$indexOfCP": ["$ClientWebsiteName", "$ClientName"] },
-1
]
}
}}
]);
Kết quả (chỉ document của John khớp):
{
"_id": ObjectId("5cea40acef71edecf6a1f68d"),
"ClientName": "John", "ClientWebsiteName": "abcd.com"
}