我有以下架构
var UserSchema = new Schema({
emp_no: Number,
skills: [{
skill: {
type: Schema.Types.ObjectId,
ref: 'Skill'
},
startDate: {type: Date},
}]
});
Run Code Online (Sandbox Code Playgroud)
然后我尝试更新一项特定技能的startDate.我尝试了几种不同的方式,其中之一是:
User.findOne({emp_no: req.body.emp_no}, function (err, user) {
user.update( {'skills._id': 123}, {'$set': {
'skills.$.startDate': req.body.startDate
}}
}
Run Code Online (Sandbox Code Playgroud)
这个特殊的代码给出了:错误:'不能使用部分(skill._id技能)来遍历元素
实际的对象看起来像
{
"_id" : ObjectId("5469753de27a7c082203fd0a"),
"emp_no" : 123,
"skills" : [
{
"skill" : ObjectId("547d5f3021d99d302079446d"),
"startDate" : ISODate("2014-12-02T06:43:27.763Z")
"_id" : ObjectId("547d5f8f21d99d3020794472")
}
],
"__v" : 108
Run Code Online (Sandbox Code Playgroud)
}
我有什么想法我做错了吗?
能够从我的自定义GWT生成器(com.google.gwt.core.ext.Generator)查看生成的代码有哪些选择.
我一直在补充创建我自己的源代码编写器,在system.out等中打印出来源,我已经设法做了但是这一切看起来都很难并且不是很容易使用.
有时我只是故意破坏生成的代码,以便在temp文件夹中打印出损坏的文件,效果很好.
必须有更好的方式......我确定我错过了一些东西.
我有一个正则表达式\ p {L}\p {M}*我用来将单词分成字符,特别需要用印地语或泰语单词,其中字符可以包含多个"字符",例如मछली如果在Java中以常规方式分割我得到[म] [छ] [ल] [ी]我想要的地方[म] [छ] [ली]
我一直在努力改进这个正则表达式以包含空格字符,以便当我拆分फार्मपशु时,我会得到跟随组[फा] [र्] [म] [] [प] [शु]
但我没有运气.有人能帮助我吗?
此外,如果有人有另一种方法可以做到这一点,java也可以作为替代解决方案.我目前的java代码是
Pattern pat = Pattern.compile("\\p{L}\\p{M}*");
Matcher matcher = pat.matcher(word);
while (matcher.find()) {
characters.add(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)