所有由zhufenghua发布的文章

MongoDB修改、删除数据

替换语法:

db.集合.update(查询BSON,修改后新BSON)

这个语法,会替换整条数据。

如果只替换某些字段,则使用 set 语法:

db.集合.update(查询BSON,{$set{修改后新BSON}})

删除数据:

db.集合.remove({BSON条件})

如果为空的bson则会导致所有的数据均被删除。

MongoDB查询数据

查询集合中的所有数据:

db.集合.find()

查询指定id(指定为1)的数据:

db.集合.find({"_id":"1"})

如果是默认的ObjectId,则带全称 find(“_id”: ObjectId(“fwefewfxv”)}

其他列名,也是如此 , find( { userid : “3” })

如果有多个值而只想查询第一个 ,使用 findOne 方法 或 find().limit(条数)

MongoDB插入数据

use 一个数据库后,就可以往数据库里插入数据

db.test.insert( { item : "card", qty : 15 })

插入格式: db.集合名称.insert() ,参数是 BSON数据

每次只能插入一条。

查询数据:

db.test.find()

使用 find 方法,可以查询一个集合中的数据,默认保留参数为空时,查询所有数据。

php静态变量和静态方法的好处

特别用于一些工具类的设计(例如单例模式)

已知数量有限的,都交给静态属性或静态方法管理(同一类实例共享)。

当然,静态方法也有一些不足之处,比如方法的代理。

而实例方法则方便很多,比如在构造方法中处理一些公用操作。

另外实例方法容易设计链式操作。

PHP怎么打印调用堆栈

方法一:debug_backtrace

无论是有产生了bug,都可以调用本方法,返回所有调用的堆栈。返回值保存到一个变量中。

方法二:debug_print_backtrace

和前面差不多,但是会直接输出,通常来说不友好。

方法三:Exception类的getTraceAsString()成员函数返回一个调用堆栈。

此方法,过于麻烦,而且不灵活,因为返回的格式是固定的字符串,如果需要取出其中的组成部分,则需要手动拆分。

使用第一个方法,通常是最佳的。

在一些情况下,此方法非常巧妙,也就是假设有一个公用函数,a() ,那么可以在a方法中判断谁调用了自己(假设b和c同时调用a),针对b、或c进行一些特定的处理。

js离开页面未保存提醒

是否离开网站,你所做的更改可能未保存。

    <script>
        window.onbeforeunload = function(e) {
            e = e || window.event;
            // 兼容IE8和Firefox 4之前的版本
            if (e) {
                e.returnValue = false;
            }
            // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
            return false;
        }
    </script>

最快速排查代码的bug

最快的方法:二分法

一个功能不能用了,先判断前端出问题还是后端出问题。

一个方法出问题了,先分成两半,并不是简单的分为两半,而是重点关注某些变量。

基于以上见解,首先要对代码合理的分层、分段。

一个方法不能太长,否则一旦出现问题不好排查。

代码行要符合高内聚、低耦合,相同功能的放在一块。

对于debug工具,要闭着眼睛也能熟练使用,没有工具效率会很低,虽然 print 也万能,但是这意味着你的速度大大降低,当前环境下各种优秀的开发调试工具,尽可能掌握并使用。

对于超长的方法,关注某个变量时,只要涉及该变量,则添加一个断点,那么几次快速跳跃断点,则可以很快定位问题所在。