我知道這個問題的標題很拗口,但如果我提供一個例子,我希望你能明白我的意思。
這是我的 MongoDB 結構:
{
"_id":{
"$oid":"62408e6bec1c0f7a413c093a"
},
"visitors":[
{
"firstSource":"123456",
"lastSource":"",
"email":"",
"deviceIds":[
"a7d5083e5c5df543a3e5b4db0742e866f554705353fae6fd6d30984d33c18ade"
],
"_id":{
"$oid":"624094328dd6ff9ac420c84a"
}
},
{
"firstSource":"123456",
"lastSource":"",
"email":"",
"deviceIds":[
"8972892x2sa3e5b4db0742e866f554705353fae6fd6d31892hdwif"
],
"_id":{
"$oid":"6240952c4d246158b74bb239"
}
}
]
}
我想要做的是檢查是否有某個 deviceId 的訪問者。如果有一個我什么都不想做,但萬一沒有一個我想添加一個新訪客。
這就是我想在代碼中做的事情:
// Find record based on ObjectID
const record = await UserRecord.findById(recordId);
// Check if the device id is already on the database within the record
if(record.visitors.deviceIds does not contain "certain deviceId") {
// Add a new visitor inside of the visitor array
record.visitors.deviceIds = "visitor with certain deviceId";
}
所以基本上我想檢查一個物件陣列中的字串是否存在于另一個陣列中。你明白我的意思嗎?如果您不理解我的問題,請告訴我。
我真的很感謝你們的幫助。我已經堅持了幾天了,似乎無法弄清楚。親切的問候,諾亞
uj5u.com熱心網友回復:
通過使用以下查詢匹配的記錄將被回傳,如果結果為空,可用于插入記錄
var result = UserRecord.find({
"_id": recordId,
"visitors.deviceIds": {
"$elemMatch": {
"$in": deviceId
}
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450790.html
標籤:javascript 打字稿 mongodb 猫鼬 查找并更新
