我有两个收藏夹。
1:第一个集合名为 OtherSubclinicalResult ,其结构如下:
{
"_id" : ObjectId("5f8ebf2a320efd7cd6df7b2d"),
"mahh" : NumberLong(2),
"mathanhtoan" : NumberLong(0),
"dong" : NumberLong(0),
"cot" : NumberLong(0),
"noidung" : "KẾT QUẢ",
"mreadonLy" : true,
"mforecolor" : "[0][0][0]",
"mbackcolor" : "[255][255][255]",
"mfont" : "[Times New Roman][11][Regular]",
"ct" : NumberLong(10000),
"mauketqua" : "Siêu âm 4D",
"mcolmer" : NumberLong(6),
"mtextalign" : NumberLong(32),
"mketluan" : false,
"is_deleted" : false
}
2:第二个集合名为 SubclinicalResult ,其结构如下:
{
"_id" : ObjectId("5f8ed12a320efd7cd6e8447d"),
"mahh" : NumberLong(177),
"mathanhtoan" : NumberLong(3),
"macs" : NumberLong(14),
"makcb" : "2000000002",
"barcode" : "010620-0002",
"manvlam" : NumberLong(2),
"maktvlam" : NumberLong(4),
"daduyet" : true,
"ngaylam" : ISODate("2020-06-01T04:03:00.000Z"),
"ngaykhopBC" : ISODate("2020-06-01T01:27:00.000Z"),
"ngaytraKQ" : ISODate("2020-06-01T04:03:00.000Z"),
"ailam" : "4/*/01/06/2020/*/11:04/*/xetnghiem/*/Xét nghiệm/*/ADMIN/*/ | 192.168.1.11 | ",
"aikhop" : "4/*/01/06/2020/*/08:28/*/xetnghiem/*/Xét nghiệm/*/ADMIN/*/ | 192.168.1.11 | ",
"ketluan" : "1",
"duyetkq" : false,
"ct" : NumberLong(2006),
"ngoaigio" : false,
"mathanhtoanct" : NumberLong(4),
"dain" : true,
"is_deleted" : false
}
我想在两个集合之间联接,条件是这两个表之间的“ mahh”和“ mathanhtoan”是等效的。这是我的工作。
db.OtherSubclinicalResult.aggregate([
{
"$match": {
mathanhtoan: Number(2533)
}
},
{
"$lookup":
{
"from": "SubclinicalResult",
"let": {
"sCode": "$mahh",
"payCode": "$mathanhtoan"
},
"pipeline": [
{
"$match": {
"$expr": {
"$and":
[
{"$eq": [ "$mahh","$$sCode"]},
{"$eq": [ "$mathanhtoan","$$payCode"]},
]
}
}
}
],
"as": "SubclinicalResult"
}
},
]).pretty();
以下是一条记录的结果。
{
"_id" : ObjectId("5f8ec015320efd7cd6e2e8bf"),
"mahh" : NumberLong(2),
"mathanhtoan" : NumberLong(2533),
"dong" : NumberLong(0),
"cot" : NumberLong(0),
"noidung" : "KẾT QUẢ",
"mreadonLy" : true,
"mforecolor" : "[0][0][0]",
"mbackcolor" : "[255][255][255]",
"mfont" : "[Times New Roman][11][Regular]",
"ct" : NumberLong(2008),
"mauketqua" : "Siêu âm 4D",
"mtextalign" : NumberLong(16),
"mketluan" : false,
"is_deleted" : false,
"SubclinicalResult" : [
{
"_id" : ObjectId("5f8ed152320efd7cd6e89214"),
"mahh" : NumberLong(2),
"mathanhtoan" : NumberLong(2533),
"macs" : NumberLong(0),
"makcb" : "2000002564",
"InstrumentID" : "7",
"manvlam" : NumberLong(12),
"maktvlam" : NumberLong(5),
"daduyet" : true,
"ngaylam" : ISODate("2020-08-24T00:45:00.000Z"),
"ailam" : "10/*/24/08/2020/*/07:55/*/tthai/*/Trịnh Thị Hải/*/CP28DQITQALNDK1/*/ | 192.168.1.12 | ",
"ketluan" : "Hiện tại siêu âm thai tương đương 35 tuần 03 ngày, chưa phát hiện dấu hiệu bất thường về hình thái ở tuổi thai này\r\nDự kiến sinh: 25 / 09 / 2020 ( Dương lịch)",
"docketqua" : "- Tử cung: \r\n \u001cTư thế trung gian.\r\n Kích thước bình thường.\r\n Âm vang cơ tử cung đồng nhất.\r\n Niêm mạc mm\r\n Buồng tử cung không thấy âm vang gì bất thường.\r\n- Phần phụ phải: Không thấy gì bất thường\r\n- Phần phụ trái: Không thấy gì bất thường\r\n- Cùng đồ sau và ổ bụng: Không có dịch.",
"ct" : NumberLong(2008),
"ngoaigio" : false,
"kythuat" : "Siêu âm màu 4D ()",
"dain" : false,
"is_deleted" : false
}
]
}
我得到的结果是180条记录,但是响应是如此缓慢(〜等于27 s)。我想优化查询以更快地获得结果。