小编Jas*_*son的帖子

mongodb不可能(?)E11000重复密钥错误重写密钥

我的理解是使用upsert更新:对单个文档执行true是一个原子操作,因此当集合没有唯一的索引字段时,这应该永远不会导致重复键错误,特别是不会出现在主_id键上:

Order.update({ _id: order._id }, query, { upsert: true }, cb) // with mongoose
Run Code Online (Sandbox Code Playgroud)

但这出现在mongod.log中:

    2015-03-27T09:39:10.349-0400 I WRITE    [conn258236] update xyz.orders 
query: { _id: "6353f880-c6a7-4260-809f-98e0af27b9a2" } update: { $set: { ... 
} keyUpdates:0 writeConflicts:0 **exception: E11000 duplicate key error dup 
key: { : "6353f880-c6a7-4260-809f-98e0af27b9a2" } code:11000** numYields:1 
locks:{} 138ms


    2015-03-27T09:39:10.349-0400 I COMMAND  [conn258236] command xyz.$cmd 
command: update { update: "orders", writeConcern: { w: 1 }, ordered: true, 
updates: [ { q: { _id: "6353f880-c6a7-4260-809f-98e0af27b9a2" }, u: { $set: { 
... …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query wiredtiger

24
推荐指数
1
解决办法
5925
查看次数

设置-eu时,bash未绑定变量不会导致从子shell退出

$ cat test.sh
set -eu
echo "`wc -l < $DNE`"
echo should not get here

$ /bin/bash test.sh
test.sh: line 2: DNE: unbound variable

should not get here
Run Code Online (Sandbox Code Playgroud)

我正在运行bash版本4.1.2.有没有办法确保子shell中所有这些未绑定变量的使用导致脚本退出而不必修改涉及子shell的每个调用?

bash shell

7
推荐指数
2
解决办法
3222
查看次数

使用verbose和xtrace(set -vx)记录bash脚本并自定义PS4

当我还为详细模式设置了详细设置时,我正在尝试配置 PS4 以获得更好的 xtrace 输出。我想做的几件事会产生子外壳,但我想看到这些操作的任何 -x 或 -v 输出,因为它们会为每一行打印。

我还想摆脱嵌套/间接深度级别指示器 (+),因为我希望跟踪输出对齐。

我最初的想法是:

BACKSPACES=$'\b\b\b\b\b\b\b\b'
PS4='+`printf "%s[\t] %-16.16s:%03d (%-16.16s) $ " ${BACKSPACES:0:$BASH_SUBSHELL} $(basename $BASH_SOURCE) $LINENO ${FUNCNAME[0]:+${FUNCNAME[0]}}`'
Run Code Online (Sandbox Code Playgroud)

我遇到的第一个问题是 $BASH_SUBSHELL 似乎并不总是与要打印的 + 的数量相同。查看 $SHLVL 也无济于事。

echo $X
+ 0 2 $ echo x <-- toplevel prints one + and $BASH_SUBSHELL is 0, as expected
x

( echo subshell )
+ 1 2 $ echo subshell <-- $BASH_SUBSHELL increments to 1 as expected, but why only one + instead of two ++?

source ./test2.sh
+ …
Run Code Online (Sandbox Code Playgroud)

debugging bash shell

4
推荐指数
1
解决办法
6051
查看次数

标签 统计

bash ×2

shell ×2

debugging ×1

mongodb ×1

mongodb-query ×1

wiredtiger ×1