The background of the project is to distribute data with the three-party platform. To ensure the data can be traced back, the message (Json format string) under the three-party platform is stored under the Message.bizData node. The sample is as follows. Now I want to query the data of transOrderCode= 91011081818. How should I write the query statement? I tried find (“”message.bizdata.transordercode “:”91011081818 “}) but it didn’t work. Should i deserialize the message into objecjt before storing it into bizData?
{
"_id" : ObjectId("5be28b1167cdcb184310c75e"),
"name" : "Best_mmg.Controllers.OrderController",
"type" : "request",
"datetime" : ISODate("2018-11-07T06:49:53.463Z"),
"Message" : {
"sign" : "bb3e894d17e069933f6dad7e19ced77f",
"serviceType" : "KY_INSTALL_ORDER_CREATE_NOTIFY",
"partnerID" : "SU_JIA",
"bizData" : '{
"partnerCode": "SU_JIA",
"cpCode": "BESTQJT",
"transOrderCode": "91011081818",
"acceptPerson": "Tian Xuan Zheng",
"acceptPhone": "13560259167",
"acceptProvince": "Guangdong Province",
"acceptCity": "Guangzhou City",
"acceptArea": "Baiyun District",
"acceptAddress": "Room 307, Building 42, Jinbi New Town",
"acceptPostCode": null,
"pickupSiteCode": "5100803",
"pickupSiteName": "Guangzhou South to Send Decorate",
"pickupSiteProvince": "Guangdong Province",
"pickupSiteCity": "Guangzhou City",
"pickupSiteArea": "Baiyun District",
"pickupSiteAddress": "Guanghui Rose Gold Factory, Chengye No.6 Road, Shunde District, Foshan City, Guangdong Province (200 meters ahead) Distribution of Century Express Chencun Hub",
"pickupSitePerson": "He Jiawei",
"pickupSitePhone": "13925700028",
"serviceType": "DISP_INSTALL",
"packageAmount": "4",
"packageCubic": "1.65",
"packageWeight": "330.0",
"isElevator": "false",
"floor": "0",
"salesPlatform": null,
"salesOrder": null,
"salesName": null,
"salesPhone": null,
"remark": null,
"itemList": {
"itemDetailList": [{
"itemSKU": null,
"itemCode": "01011010001",
"itemName": "High-pressure box type solid wood bed",
"amount": "1",
"checkerID": null,
"checkerName": "master meow",
"checkCode": "246438497499365546",
"remark": null,
"imgUrl": null
}
]
},
"addServiceList": {
"addServiceDetailList": [
]
}
}'
}
}
Simply put, there is no way to inquire. Because this is a string.
Deserialization into Object allows you to query, but the query uses a full table scan and the performance is very low. It is very important to establish relevant indexes.