流星Mongodb查询不更新没有错误消息
Meteor Mongodb query doesnt update with no error messages
我一直被困在这个流星问题一段时间。我试图在mongodb的文档中更新一个嵌套数组。然而,它似乎并没有更新文档。此外,没有发出错误消息,这让我感到困惑。
Document structure:
|----_id
|----name
|----members (Array)
|---- [0]
|----history (Array)
|----[0]={type:2,startdate:010304,enddate:120314}
|----[1]={type:1,startdate:140904,enddate:150914}
|----[2]={type:3,startdate:241204,enddate:291214}
|----!!!!!I WANNA ADD THE ENTRY HERE !!!!!!!!!!
|----state
|---- [1]
|----history (Array)
|----[0]={type:2,startdate:010304,enddate:120314}
|----State
代码
hisobj = {'type':type, 'startdate':startdate,'enddate':enddate};
parstr = "members["+insertmemberid+"].history";
Groups.update({"_id":Session.get("groupid")},{$addToSet:{parstr:{$each: [hisobj]} } });
在您的update
函数中,parstr
是一个javascript标识符。它被用作属性名而没有被解析。它与使用字符串"parstr"
具有相同的效果。要使用变量的值作为属性名,必须使用数组表示法。因此,创建一个对象作为addToSet操作的值,并使用parstr
的值在那里设置一个属性。
hisobj = {'type':type, 'startdate':startdate,'enddate':enddate};
parstr = "members." + insertmemberid + ".history";
// create an object to be used as the value of the addToSet operation
var addToSetValue = {};
// the value stored in parstr will be used here
addToSetValue[parstr] = hisobj;
Groups.update({"_id":Session.get("groupid")}, {$addToSet: addToSetValue}}, function (error) {
if (error) {
console.log(error);
}
});
请注意,在parstr
中,您需要使用点符号,正如Hubert OG所说。这是另一种情况。我们只是创建字符串mongodb将使用内部做它的魔力。
同样,作为update调用的最后一个参数的回调将让您看到一个可能的错误。
尝试用点符号代替括号:
parstr = "members."+insertmemberid+".history";
假设insertmemberid === 0
.
另外,由于使用了$addToSet
操作符,请确保添加到数组中的对象不等于另一个已经存在的对象。
相关文章:
- jQuery在输入下验证post错误消息
- 在AngularJs中隐藏默认错误消息
- 回复'js'仅当请求有错误时(否则使用html)
- 如果用户输入的长度小于最小长度,则显示错误消息
- 使用ASP.NET CustomValidator避免重复的错误消息
- KOValidation在错误消息中获取可观察值、$index()、$data等
- 更改精细上载中的错误消息
- 如何在页面刷新时隐藏错误消息
- 如何显示错误消息
- 表单已发送,但验证有错误
- 滑块未显示,控制台中没有错误消息
- 如果文件不存在,fs.watch是否有错误处理程序
- 表单提交没有'如果为空,则不会显示错误消息
- 为什么我的Alexa技能测试显示正确的lambda输出,但在开发人员控制台中测试时却给出错误消息
- 隐藏错误消息“;未选择文件”;asp:fileUpload的文本
- Javascript在每个有问题的控件上输出一条错误消息
- 如果未配置闪存,我该怎么办,那么在自动捕获图像上应该有一些错误消息
- 有没有一种方法可以在加载页面后检查iframe是否有错误消息
- JQuery表单验证:当有转义JSON时不显示错误消息
- 是否有任何好的或可靠的方法可以仅使用Internet Explorer错误消息来确定JavaScript错误的位置