删除代码的重复项(在MongoDB shell中)是这样的:
db.<collection_name>.aggregate([
{
$group: {
_id: { <duplicated_keys>: "$<duplicated_keys>" },
dups: { $addToSet: "$_id" },
count: { $sum: 1 }
}
},
{
$match: {
count: { $gt: 1 }
}
}
], { allowDiskUse: true })
.forEach(function(doc) {
doc.dups.shift();
db.<collection_name>.remove({ _id: { $in: doc.dups } });
});
Run Code Online (Sandbox Code Playgroud)
我有一个这样的错误:
[thread1] Error: getMore command failed: {
"ok" : 0,
"errmsg" : "Cursor not found, cursor id: 144931661890",
"code" : 43
}
Run Code Online (Sandbox Code Playgroud)
这个错误的原因是什么?我怎么能解决这个问题?
UPDATE
之前forEach,结果是:
{ "_id" : …Run Code Online (Sandbox Code Playgroud)我在Windows 8上使用Python版本3.4.2,我发现"global"关键字不适用于"from ... import ..."
为了测试,我写了这样的代码:
# In test1.py
a = 1
def aPlusPlus():
global a
a += 1
Run Code Online (Sandbox Code Playgroud)
还有这个:
# In test2.py
from test1 import *
print(a)
aPlusPlus()
print(a)
Run Code Online (Sandbox Code Playgroud)
结果是:
> python3 test2.py
1
1
Run Code Online (Sandbox Code Playgroud)
但是,如果我写import test1,test1.a并且test1.aPlusPlus(),结果是:
> python3 test2.py
1
2
Run Code Online (Sandbox Code Playgroud)
为什么会这样?