我試圖不讓我的代碼變得多余,我想知道,如果在 .updateOne 方法中,當我傳遞資料進行更改時,是否可以實作 if 陳述句以從資料中進行選擇。這是一種情況。
我有我的資料庫模型:
const depositarySchema = new Schema({
euid: {
type: String,
required: true
},
euid2: {
type: String
},
count: {
type: Number,
required: true
},
euroPallets: {
type: Number,
},
biggerPallets: {
type: Number,
},
otherPallets: {
type: Number,
},
depositary: {
type: Number,
required: true
},
title: {
type: String
}
});
然后我有一個變數: var = 1 用于 euroPallets,2 用于更大的Pallets,3 用于 otherPallets。我想實作這樣的事情:
Depositary.updateOne(
{
euid: euid,
},
{
count: dep.count - palletCounter,
if(var === 1){
euroPallets: count}
elseif(var===2){
biggerPallets: count}
else{
otherPallets: count}
},
其中 count 只是一個數字。我希望它可以理解我試圖實作的目標,抱歉語法錯誤。
uj5u.com熱心網友回復:
Wernfried Domscheit 擊敗了我,但無論如何我都會發布我的答案。
const palletTypes = ['otherPallets', 'euroPallets', 'biggerPallets'];
var count = ep.count - palletCounter;
var palletType = palletTypes[count] || palletTypes[0];
var pallets = {'count': count};
pallets[palletType] = count;
Depositary.updateOne(
{euid: euid},
pallets
)
老實說,我只是制作一個輔助方法,這樣您就可以發送引數,它將所有內容都轉換為正確的物件。
updatePallets(euid, ep.count, palletCounter)
uj5u.com熱心網友回復:
也許這個:
let upd = {
euid: euid,
count: dep.count - palletCounter
};
if (var === 1) {
upd['euroPallets'] = count;
}
else if (var === 2) {
upd['biggerPallets'] = count;
}
else {
upd['otherPallets'] = count;
}
Depositary.updateOne(upd)
編輯:
要使 .updateOne() 方法像我想要的那樣實際作業,您需要分離 euid 引數。正確的解決方案是這樣的:
let upd = {
count: dep.count - palletCounter
};
if (var === 1) {
upd['euroPallets'] = count;
}
else if (var === 2) {
upd['biggerPallets'] = count;
}
else {
upd['otherPallets'] = count;
}
Depositary.updateOne(
{
euid: euid,
},
upd,
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/529475.html
上一篇:try/exceptif/else-如何替換“無”輸出
下一篇:嵌套回圈和if陳述句的R代碼錯誤