gpt4 book ai didi

javascript - 如何在mongo查询中动态使用$push

转载 作者:行者123 更新时间:2023-12-01 03:37:05 25 4
gpt4 key购买 nike

我有一个具有以下格式的文档:

{ 
"Students" : {
"Week1" : {
"Monday" : [

],
"Tuesday" : [

],
"Wednesday" : [

],
"Thursday" : [

],
"Friday" : [

],
"Saturday" : [

],
"Sunday" : [

]
},
"Week2" : {
"Sunday" : [

],
"Monday" : [

],
"Tuesday" : [

],
"Wednesday" : [

],
"Thursday" : [

],
"Friday" : [

],
"Saturday" : [

]
},
"Week3" : {
"Sunday" : [

],
"Monday" : [

],
"Tuesday" : [

],
"Wednesday" : [

],
"Thursday" : [

],
"Friday" : [

],
"Saturday" : [

]
},
"Week4" : {
"Sunday" : [

],
"Monday" : [

],
"Tuesday" : [

],
"Wednesday" : [

],
"Thursday" : [

],
"Friday" : [

],
"Saturday" : [

]
},
"Week5" : {
"Sunday" : [

],
"Monday" : [

],
"Tuesday" : [

],
"Wednesday" : [

],
"Thursday" : [

],
"Friday" : [

],
"Saturday" : [

]
}
}
}

我想使用 Week1 作为变量动态地将一些元素推送到 Students.Week1.Monday 中。所以我想像这样构建它:

var dbNames = ['Zoe', 'Billy', 'Joey'];
var week = Week1; // week is dynamic entry
var query1 = {};
query1['Students.' + week + '.Monday'] = '$in: ' + dbNames;
Programs.update({ _id: teacherid }, { $push: query1 });

我把事情搞砸了。任何帮助表示赞赏。

最佳答案

您可以动态创建对象来解决问题

var query = {};
var week = "DYNAMIC_VAL"; // Replace this
var day = "Monday"; // Dynamic Day
var dbNames = ['Zoe', 'Billy', 'Joey'];
query['Students'] = {};
query['Students'][week] = {};

// query['Students'][week][day] = { '$in': dBNames } // As per your query.
// but it should not work,
// if you want to push all elements of dbNames then you can use $each instead of $in

query['Students'][week][day] = { '$each': dBNames };


//console.log(JSON.stringify(query, null, 2));

Programs.update({ _id: teacherid }, { $push: query }, callback);

关于javascript - 如何在mongo查询中动态使用$push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44189549/

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