node.js - 如何将新记录插入多级 MongoDB 文档
问题描述
我需要根据用户输入将新记录插入到多级模式中。我在下面解释我的文件。
分配:
{
"zone_list":[{
"zone":'NORTH',
"state_list":[{
"state":"DELHI",
"location_list":[{
"location":"NEW DELHI",
"task_list":[{
"login_id":"9937229853",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456',
feedback_details:[
{name:'Raj'}
]
}]
},{
"login_id":"9937229854" ,
"loan_accounts_assigned": [{
lk_loan_account_id: '1234567'.
feedback_details:[
{name:'Raj'}
]
}]
}]
},{
"location":"AIRPORT",
"task_list":[{
"login_id":"9937229855",
"loan_accounts_assigned": [{
lk_loan_account_id: '12345678',
feedback_details:[
{name:'Raj'}
]
}]
}]
}]
},{
"state":"JK",
"location_list":[{
"location":"NEW JK",
"task_list":[{
"login_id":"9937229853",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456789',
feedback_details:[
{name:'Raj'}
]
}]
},{
"login_id":"9937229857" ,
"loan_accounts_assigned": [{
lk_loan_account_id: '12345',
feedback_details:[
{name:'Raj'}
]
}]
}]
},{
"location":"AIRPORT JK",
"task_list":[{
"login_id":"9937229858",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456432',
feedback_details:[
{name:'Raj'}
]
}]
}]
}]
}]
},{
"zone":'EAST',
"state_list":[{
"state":"WB",
"location_list":[{
"location":"KOLKATA",
"task_list":[{
"login_id":"9937229859",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456',
feedback_details:[
{name:'Raj'}
]
}]
},{
"login_id":"9937229850" ,
"loan_accounts_assigned": [{
lk_loan_account_id: '123456f',
feedback_details:[
{name:'Raj'}
]
}]
}]
},{
"location":"ASAM",
"task_list":[{
"login_id":"9937229895",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456456',
feedback_details:[
{name:'Raj'}
]
}]
}]
}]
},{
"state":"ODISHA",
"location_list":[{
"location":"BHUBANESWAR",
"task_list":[{
"login_id":"9937229844",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456ty7',
feedback_details:[
{name:'Raj'}
]
}]
},{
"login_id":"9937229845" ,
"loan_accounts_assigned": [{
lk_loan_account_id: '123456',
feedback_details:[
{name:'Raj'}
]
}]
}]
},{
"location":"AIRPORT BBSR",
"task_list":[{
"login_id":"9937229846",
"loan_accounts_assigned": [{
lk_loan_account_id: '123456',
feedback_details:[
{name:'Raj'}
]
}]
}]
}]
}]
}]
}
在这里,我需要按照我的代码插入新记录feedback_details
,login_id
但按照我的代码我做不到。我在下面解释我的代码。
login_id=9937229853;
var data={
name:"Rahul"
}
//console.log(data);
db.collection.update(
{},
{$push:{"zone_list.$[].state_list.$[].location_list.$[].task_list.$[ts].loan_accounts_assigned.$[].feedback_details":data}},
{arrayFilters:{"ts.login_id":login_id}}, function(uerr,udocs){
//{"zone_list.state_list.location_list.task_list.login_id": login_id},
// { $push : {"zone_list.state_list.location_list.task_list.loan_accounts_assigned.feedback_detail":data}},function(uerr,udocs){
if (!uerr) {
console.log('docs',udocs);
var data1={
"status": 200,
"message": "Success"
}
}else{
console.log('err',uerr);
var data1={
"status": 400,
"message": "Failed"
}
}
res.send(data1);
})
在这里,我也遇到了[Symbol(mongoErrorContextSymbol)]: {} }
错误。feedback_detail
我需要根据 login_id将新记录插入到s 中。
解决方案
login_id=9937229853;
var data={
name:"Rahul"
}
//console.log(data);
db.collection.update(
{"zone_list.state_list.location_list.task_list.login_id": login_id}, //add match filter also
{$push:{"zone_list.$[].state_list.$[].location_list.$[].task_list.$[ts].loan_accounts_assigned.$[].feedback_details":data}},
{arrayFilters:[{"ts.login_id":login_id}]} // u missed square brackets "[]" for array filter conditions
,function(uerr,udocs){
if (!uerr) {
console.log('docs',udocs);
var data1={
"status": 200,
"message": "Success"
}
}else{
console.log('err',uerr);
var data1={
"status": 400,
"message": "Failed"
}
}
res.send(data1);
})
@subhra:您错过了数组过滤器上的 []
推荐阅读
- java - 从发布请求java中获取变量
- c - 比较数组中名称字符串且不区分大小写的函数
- devexpress - DevExpress 和 Syncfusion
- scikit-learn - Python - RandomForestClassifier 和 XGBClassifier 具有完全相同的分数
- powerbi - 将 CSV 数据转换为 DAX 表
- node.js - 使用 Axios 创建文件系统缓存以在全局缓存 API 请求
- laravel - Laravel Vapor CLI 登录中止且没有错误。如何登录?
- selenium - java.lang.AssertionError:比较预期的错误消息
- r - 如何修复R中的行引用
- sql - 如何从 SQL 表中选择条目数中第 N 位的元素?