gpt4 book ai didi

javascript - Node.js - Mongodb - Mongoose /无法将数组字符串传递到 $push 字段中

转载 作者:行者123 更新时间:2023-11-30 19:05:43 24 4
gpt4 key购买 nike

所以我试图将每个数组的不同索引推送到 $push 调用中以填充 mongodb 服务器,但是我在调​​用特定于我尝试访问的数组时遇到了问题

数据库中有一个初始数组,是IP地址和数组名需要设置的

//Team IP Info
var teamIps = [
'8.8.8.8',
'8.8.8.9',
'8.8.8.8',
'8.8.8.8',
'8.8.8.8',
]
var boxNames = [
'Linux1',
'Linux2',
'Windows1',
'Windows2',
'98',
]

这是 $push 调用的代码

for (let index = 0; index < teamIps.length; index++) {
var hostIn = teamIps[index];
const boxName = boxNames[index];
const liTest = 'services.0.ICMP_Linux1'
var db_base = 'services.0.ICMP_';
var db_index = db_base.concat(boxName);
console.log('Inital : ' + boxName)

//This should work and makes life easier but I cant append the db_index string into the mongoose push call

var result = await session.pingHost(hostIn, function (error, hostIn, sent, rcvd) {
var ms = rcvd - sent;
var db_base = 'services.0.ICMP_';
var db_index = db_base.concat(boxName).toString();
console.log(typeof db_index)
if (error){
var output = hostIn + ": " + error.toString()
Team.findOneAndUpdate(
{ name: name },
{$push: {db_index :{ timeStamp: epochTime , status: false , error: error.toString()} }},
function(err,suc){
if(err){
console.log(err)
}
else{
console.log(hostIn + ' : ' + db_index + " : " + output)
}
});
// res.send({
// result: output
// })
}
else{
var output = hostIn + ": Alive (ms=" + ms + ")"
Team.findOneAndUpdate(
{ name: name },
{$push: {db_index :{ timeStamp: epochTime , status: true , speed: ms} }},
function(err,suc){
if(err){
console.log(err)
}else{
console.log(hostIn + ' : ' + db_index + " : " + output)
}
});
// res.send({
// result: output
// })
}
});

在这次通话中

{$push: {db_index :{ timeStamp: epochTime , status: false , error: error.toString()} 

我希望能够将 db_index 更改为数组中的每个,但它始终默认为实际单词 db_index

我似乎无法弄清楚如何在不失败的情况下将字符串传递给此调用

有效的调用看起来像这样

{$push: {'services.0.ICMP_Linux1':{ timeStamp: epochTime , status: false , error: error.toString()} }},

数据库端一切正常,当通过此调用手动传递时,一切正常。

最佳答案

您可以使用计算属性名称:

{$push: {[db_index] :{ timeStamp: epochTime , status: false , error: error.toString()} } }

关于javascript - Node.js - Mongodb - Mongoose /无法将数组字符串传递到 $push 字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com