更新数据与Moongoose和平均堆栈
问题描述:
我有一个猫鼬的数据是这样的:更新数据与Moongoose和平均堆栈
{
"_id" : ObjectId("58e394cacaa6512ed00e8d83"),
"RoleName" : "Manager",
"UIList" : [
{
"Edit" : false,
"View" : false,
"UiName" : "ElevatorMapping"
},
{
"Edit" : false,
"View" : false,
"UiName" : "ElevatorAssumptions"
},
{
"Edit" : false,
"View" : false,
"UiName" : "ManageUnits"
},
{
"Edit" : false,
"View" : false,
"UiName" : "ManageBuildings"
}
],
"__v" : 0,
"Description" : "fd",
"IsActive" : true
}
现在我想更新内部UIname UILIST:“ElevatorMapping” &“电梯假设”查看和编辑为真。如何为此编写查询?我尝试了下面的东西。
这是我的控制器页面。
$http.put('/ViewEditupdate/' + id +'/' + uiname + '/' + view + '/' + edit).then(function (response) {
refresh();
})
这里采用的是正确的id值,但不会采用编辑视图UI名称。编辑,视图名称被视为未定义。
我server.js代码
app.put('/ViewEditupdate/:id/:uiname/:view/:edit', RoleEntrypath.RoleViewEditupdate);
我的架构代码
newRole.update({ "UIList.UiName": "ManageRole" }, { "$push": { "UIList.$.View": "true", "UIList.$.Edit": "true" } },
function (err, doc) {
res.json(doc);
}
);
谁能给解决?
答
我已经使用这个查询更新。
newRole.update
(
{
_id: id,
"UIList.UiName": "ManageRole"
},
{
$set: {
"UIList.$.View": "true",
"UIList.$.Edit": "true"
}
},
function (err, doc) {
res.json(doc);
}
);
+2
这与我给出的答案完全相同。你应该把我的答案标记为正确的答案,我解决了你的代码问题。 –
+0
:@ravi Shankar:我在一天之前完成了这个查询。所以我不会标记为你的答案。你的答案中没有提到你的id名字 – Vinoth
答
你应该使用的,而不是$set
向$push
的view
值从false
改为true
。
试试这个:
newRole.update({
"UIList.UiName": "ManageRole"
},{
$set: { "UIList.$.View": "true", "UIList.$.Edit": "true" }
},function (err, doc) {
res.json(doc);
});
跟进您的问题非常困难。你为什么不试着用简单的话来说呢? –
HI ankit,我已更新我的问题 – Vinoth
您可以在您的put API中打印所有参数值吗?首先,让我们来看看你是否正在接受正确的价值观。如果你正在接收正确的值,那么问题可能是'update'查询。 –