我有一个非常复杂的模式,它有一个内部数组,每个数组元素都包含一个更高级别的数组。但是如何更新第二级数组中的数据。
我需要更新services
数组,但是如何获得访问权限?我有Item的_id,线程号,班次号(只能是3,由于不是三级数组,所以很难排列)和服务名。
我需要类似(伪代码)
getByItemId(id)
.getByThreadNumber(tNumber)
.getByShift(numberShift)
.getByServiceName(name)
.updateLogInCounter(newValCounter)
const itemSchema = new Schema({
threads: [
{
number: {
type: Number,
requred: true
},
{
firstShift: {
"someData": ... ,
"services": [
"name": {type: String}
"lastUpdate": {type: Date},
"logInCounter": {type: Number}
]
},
secondShift: {
"someData": ... ,
"services": [
"name": {type: String},
"lastUpdate": {type: Date},
"logInCounter": {type: Number}
]
},
thirdShift: {
"someData": ... ,
"services": [
"name": {type: String},
"lastUpdate": {type: Date},
"logInCounter": {type: Number}
]
}
}
}
]
})
也许这个数据结构不正确,这不可能吗?也许我需要创建许多收藏集?也许有些插件可以帮助我。还是正常,如果是的话,如何获取我的目标数据?
答案 0 :(得分:1)
您可以在3.6中使用以下代码
使用计算出的属性名称动态传递班次编号。 $[identifier]
位置运算符,用于匹配线程号和服务名称,后跟用于服务的线程内部的logInCounter增量。
...1: from test_example.rb:9:in `block in <main>'
.../minitest-5.11.3/lib/minitest/spec.rb:212:in `it':
wrong number of arguments (given 2, expected 0..1) (ArgumentError)