我遇到了一个我无法调试的错误.
外形field.html
<div class='row form-group' ng-form="{{field}}" ng-class="{ 'has-error': {{field}}.$dirty && {{field}}.$invalid }">
<label class='col-sm-2 control-label'> {{ field | labelCase }} <span ng-if='required'>*</span></label>
<div class='col-sm-6' ng-switch='required'>
<input ng-switch-when='true' ng-model='record[field][0]' type='{{record[field][1]}}' class='form-control' required ng-change='update()' ng-blur='blurUpdate()' />
<div class='input-group' ng-switch-default>
<input ng-model='record[field][0]' type='{{record[field][1]}}' class='form-control' ng-change='update()' ng-blur='blurUpdate()' />
<span class='input-group-btn'>
<button class='btn btn-default' ng-click='remove(field)'><span class='glyphicon glyphicon-remove-circle'></span></button>
</span>
</div>
</div>
<div class='col-sm-4 has-error' ng-show='{{field}}.$dirty && {{field}}.$invalid' ng-messages='{{field}}.$error'>
<p class='control-label' ng-message='required'> {{ field | labelCase }} is required. </p>
<p class='control-label' ng-repeat='(k, v) in types' ng-message='{{k}}'> …Run Code Online (Sandbox Code Playgroud) 根据文档的评论:http://php.net/manual/en/language.generators.overview.php
我们可以看到,由于生成器有大量的内存使用改进(这是显而易见的),但也有2-执行速度慢3倍 - 这对我来说并不那么明显.
我们以牺牲时间为代价来提高内存使用率 - 这并不好.
那么,为什么php生成器比foreach慢?
谢谢你的提示.
在一个问题的答案中,我发现了一个使用$ elemMatch搜索数组值的有趣解决方案.
如果我们的藏品中有以下文件:
{
foo : [ { bar : "xy", baz : 1 },
{ bar : "a", baz : 10 } ]
},
{
foo : [ { bar : "xy", baz : 5 },
{ bar : "b", baz : 50 } ]
}
Run Code Online (Sandbox Code Playgroud)
以下查询仅匹配第一个文档:
db.test.find({
foo : { "$all" : [ { "$elemMatch" : { bar : "xy", baz : 1} }, { "$elemMatch" : { bar : "a", baz : 10 } } …Run Code Online (Sandbox Code Playgroud) 我有这个架构:
var userSchema = new mongoose.Schema({
name: {type: String,required: true,lowercase: true, trim: true},
email: {type: String, required : true, validate: validateEmail },
createdOn: { type: Date, default: Date.now },
lastLogin: { type: Date, default: Date.now }
});
Run Code Online (Sandbox Code Playgroud)
这是我的验证"规则"
var isNotTooShort = function(string) {
return string && string.length >= 5;
};
var onlyLettersAllow = function(string) {
var myRegxp = /^[a-zA-Z]+$/i;
return myRegxp.test(string);
};
Run Code Online (Sandbox Code Playgroud)
为了验证我的名字字段,我尝试了这个:
userSchema.path('name').validate(isNotTooShort, 'Is too short');
userSchema.path('name').validate(onlyLettersAllow, 'Only Letters');
Run Code Online (Sandbox Code Playgroud)
它的工作原理.我可以在Schema中的字段上添加多个验证吗?就像是:
validate:[onlyLettersAllow,isNotTooShort]
Run Code Online (Sandbox Code Playgroud) 我知道通过使用-Pswitch或@paralleltag我可以在多个主机上并行运行任务.
我正在尝试在同一主机上并行执行多个长时间运行的任务:
@task
def task1():
# long running op
@task
def task2():
#long running op
@task
def task3():
#long running op
@task
def backup_all():
execute(task1)
execute(task2)
execute(task3)
Run Code Online (Sandbox Code Playgroud)
如何使用fabric在同一主机上并行启动task1,task2和task3.我知道我可以运行具有不同任务的多个fab流程,但我正在寻找一种涉及结构的解决方案.
我使用PHP数组语法遇到了这个MongoDB查询的问题.这是我想要使用的查询的直接版本.
db.collection.find({
$or: [
{$and : [{X:1}, {X: {$gt: 100}}]},
{$and : [{X:2}, {X: {$lt: 100}}]}
]
});
Run Code Online (Sandbox Code Playgroud)
注意:真正的查询更复杂,这只是一个例子.
我无法在PHP中找到一些描述此类查询的示例.我提出的最好的是:
$query = array(
'$or' => array(
array(
'$and' => array(
array('X' => 1),
array('X' => array('gt' => 100))
)
),
array(
'$and' => array(
array('X' => 2),
array('X' => array('lt' => 100))
)
),
)
);
$this->db->collection->find($query);
Run Code Online (Sandbox Code Playgroud)
但是这个查询不会返回任何结果.显然我们无法$and从数组中删除,因为我们不能在PHP数组中有重复的键.
我不想使用JavaScript表达式,因为速度至关重要.
更新:正如Alexander Azarov在评论中指出的那样,我的原始查询可以用不同的方式编写.我已使用正确使用的$and查询更新了问题 .
在MongoDB中你如何链接find()方法?假设我想在Python/pymongo中做这样的事情
query = prices.find({'symbol': "AAPL"})
if start is not None:
query = query.find({'date': {'$gte': start}})
if end is not None:
query = query.find({'date': {'$lte': end}})
Run Code Online (Sandbox Code Playgroud) 我有一个Nat的HList,我想要映射它
object NatToString extends Poly1 {
implicit def caseNat = at[Nat](_.toString)
}
val list = _5 :: _3 :: HNil
list.map(NatToString)
Run Code Online (Sandbox Code Playgroud)
此代码不编译并抛出:
找不到参数映射器的隐含值:
shapeless.ops.hlist.Mapper [Main.Nat_to_String.type,shapeless.:: [shapeless.Nat._5,shapeless.:: [shapeless.Nat._3,shapeless.HNil]] ]
但是,如果我用Int(或String,或List等)代替Nat做同样的事情,它就完美无缺.
我如何映射Nat的HList?
这是我下载的食谱:https: //github.com/edelight/chef-mongodb
我安装了Chef服务器,Chef工作站,并准备好一个testnode来引导.
我创建的角色:
$ knife role create mongodb_standalone_testproj
Run Code Online (Sandbox Code Playgroud)
JSON格式:
{
"name": "mongodb_standalone_testproj",
"description": "Deploy MongoDB standalone with override attributes",
"json_class": "Chef::Role",
"default_attributes": {
},
"override_attributes": {
"mongodb::default": {
"port": "27060",
"dbpath": "/data/"
}
},
"chef_type": "role",
"run_list": [
"recipe[mongodb::default]"
],
"env_run_lists": {
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用此角色引导testnode时:
knife bootstrap testnode --sudo -x <omit> -P <omit> -N testnode -r 'role[mongodb_standalone_testproj]'
Run Code Online (Sandbox Code Playgroud)
登录:http://pastebin.com/DWxY3vNV
问题是,MongoDB安装并在testnode上运行但是覆盖属性(port和dbpath)没有被应用,任何线索?
mongodb ×5
php ×2
python ×2
angularjs ×1
attributes ×1
chef-infra ×1
chef-recipe ×1
fabric ×1
foreach ×1
generator ×1
javascript ×1
mongodb-php ×1
node.js ×1
overriding ×1
performance ×1
pymongo ×1
role ×1
scala ×1
shapeless ×1