在angular流星中使用$push操作符更新mongodb
updating mongodb using $push operator in angular-meteor
我正在尝试将数组从一个集合推送到另一个集合。这是我在服务器js 中使用的代码
updateSettings: function(generalValue) {
let userId = Meteor.userId();
let settingsDetails = GeneralSettings.findOne({
"_id": generalValue
});
Meteor.users.update({
_id: userId
}, {
$push: {
"settings._id": generalValue,
"settings.name": settingsDetails.name,
"settings.description": settingsDetails.description,
"settings.tag": settingsDetails.tag,
"settings.type": settingsDetails.type,
"settings.status": settingsDetails.status
}
})
}
updateSettings是流星方法。GeneralSettings是第一个集合,user是第二个集合。我想把数组从GeneralSettings推送到users集合。当我尝试这个时,我得到的结果就像
"settings" : {
"_id" : [
"GdfaHPoT5FXW78aw5",
"GdfaHPoT5FXW78awi"
],
"name" : [
"URL",
"TEXT"
],
"description" : [
"https://docs.mongodb.org/manual/reference/method/db.collection.update/",
"this is a random text"
],
"tag" : [
"This is a demo of an Url selected",
"demo for random text"
],
"type" : [
"url",
"text"
],
"status" : [
false,
false
]
}
但我想要的输出是
"settings" : {
"_id" : "GdfaHPoT5FXW78aw5",
"name" : "URL",
"description" :
"https://docs.mongodb.org/manual/reference/method/db.collection.update/",
"tag" :"This is a demo of an Url selected",
"type" : "url",
"status" : false
},
为了得到这个输出,在我的server.js中进行了哪些更改
这是一种"不希望"使用"点表示法"的情况。$push
运算符期望和Object
或基本上将向"左侧键"中命名的数组添加"右侧":
// Make your life easy and just update this object
settingDetails._id = generalValue;
// Then you are just "pushing" the whole thing into the "settings" array
Meteor.users.update(
{ _id: userId },
{ "$push": { "settings": settingDetails } }
)
当你在每个项目上使用"点符号"时,那就是要求为所提供的各个"键"中的"每个"创建"数组"。所以它只是"一个"数组键,以及作为参数添加的对象。
相关文章:
- NodeJS API调用中Array中的Push和Pull元素
- Push方法显示错误
- Array.push导致程序出错
- Firebase“;未捕获的类型错误:myDataRef.push不是函数;
- $$hashKey在Angular中push()新对象时未生成新值
- 带array.push()的双方括号---JavaScript
- 使用$http的angular js中的JSON数据-data.push()
- 为什么push方法没有'在这种情况下不起作用:[].推
- Flexbox导致adsense错误:;adsbygoogle.push()错误:没有可用宽度为0的插槽大小;
- 为什么这个 .push 不起作用?(JavaScript)
- 检测未绑定的本机函数,如“Array.push”
- Javascript:如何对属性变量(例如var.hello.push)执行数组方法?太习惯AS3了
- Mongo操作符$pull不工作(Meteor.js)
- 向 Firebase “push” 方法添加时间戳
- TypeError: matrix[y].push 在尝试使用 javascript 创建 2D 数组时不是一个函数
- dataLayer.push() 返回值含义
- Javascript:push 不是数组的函数
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- 带有jquery .push的Javascript全局数组在备用函数中返回空数组
- 在angular流星中使用$push操作符更新mongodb