私信  •  关注

sean

sean 最近回复了
7 年前
回复了 sean 创建的主题 » Mongodb更新子文档字段的方法比逐个更新更好[重复]

这也可以通过while循环来完成,该循环检查是否还有任何文档仍然具有尚未更新的子文档。此方法保留更新的原子性(这里的许多其他解决方案都没有)。

var query = {
    events: {
        $elemMatch: {
            profile: 10,
            handled: { $ne: 0 }
        }
    }
};

while (db.yourCollection.find(query).count() > 0) {
    db.yourCollection.update(
        query,
        { $set: { "events.$.handled": 0 } },
        { multi: true }
    );
}

执行循环的次数将等于子文档的最大次数。 profile 等于10并且 handled 集合中的任何文档中都不等于0。因此,如果您的集合中有100个文档,其中一个文档有三个子文档匹配 query 而且所有其他文档都有较少的匹配子文档,循环将执行三次。

此方法避免了在执行此脚本时删除其他可能由其他进程更新的数据的危险。它还最小化了在客户机和服务器之间传输的数据量。

5 年前
回复了 sean 创建的主题 » python使用if语句检查时间戳是否工作不正常

“break”语句不应在循环之外。但通常情况下,口译员会发现这一点。所以必须有更多的代码,也许问题就在那里。我复制了这里的逻辑并将给定的值赋给变量,如果customer_被阻塞,我得到第一个选项=false,如果是false,我得到第二个选项

two_month_seconds   = (3600 * 24) * 60
one_month_seconds   = (3600 * 24) * 30
current_timestamp   = 1545247709.1553745
retrieved_timestamp = 1545026400
customer_is_blocked = True

if retrieved_timestamp > (current_timestamp - one_month_seconds) and not customer_is_blocked:
    print(1)
elif customer_is_blocked:
    print(2)
elif retrieved_timestamp < (current_timestamp - two_month_seconds):
    print(3)

您是否将'false'或'false'(字符串)分配给customer_是否被阻止而不是false?

13 年前
回复了 sean 创建的主题 » jquery validate-要求在一个组中至少填写一个字段

很好的解决方案。但是,我有一个问题,就是其他规定的规则不起作用。对表单执行.valid()为我修复了此问题。

if(!$(element).data('being_validated')) {
  var fields = $(selector, element.form);
  fields.data('being_validated', true); 
  $(element.form).valid();
  fields.data('being_validated', false);
}