arrays - 使用 $elemMatch 和 $arrayFilters 在嵌套数组中推送对象
问题描述
我一直在尝试使用 mongoose update()、$elemMatch 和 $arrayfilters 将对象推送到嵌套数组中。
这是架构:
var details = new Schema({
var1: { type: String, required: true },
array1: [{
var2: { type: String, required: true },
array2: [{
var3: { type: String, required: true },
array3: [{
a: { type: String, required: true },
b: { type: Number, required: true },
c: { type: Date, required: true }
}]
}]
}]
})
这是我编写的要在array3中推送对象的猫鼬代码:
Details.update(
{
var1: value1,
array1: {
"$elemMatch": {
var2: value2,
"array2.var3": value3
}
}
},
{
"$push": {
"array1.$[outer].array2.$[inner].array3": {
a: valueOfa,
b: valueOfb,
c: valueOfc
}
}
},
{
"arrayFilters": [{ "outer": value2}, { "inner": value3}]
}, function (err, data) {
if (err) {
console.log('Error!', err);
response.sendStatus(500)
} else {
console.log('pushed')
response.sendStatus(200)
}
}
)
我没有错误!我的状态为 200。但对象没有被推入 array3。在这里需要一些帮助。
解决方案
推荐阅读
- rest - 使用 JavaDSL 配置到外部 URL 的 apache-camel 路由
- c# - 将数据从 GridView 保存到数据库时输入字符串格式不正确
- c# - 如何在迭代中同时中断和继续?
- json - jq - 根据其中一个值查找 JSON 对象并从中获取另一个值
- elasticsearch - Elasticsearch - 完全插入或部分更新
- javascript - 如何使用php读取本地目录中的图像并将其显示到网页中
- node.js - 嗨,我是新手,有人可以帮我解决这个问题吗?
- java - 尝试在tomcat中部署Maven应用程序
- ruby - 翻译 Jekyll 日期
- php - php json输出麻烦