我遇到了一个长期困扰我的问题,接下来是代码演示(例如代码演示):
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.FragmentActivity; // <- specified as unused ERROR
import android.support.v4.app.FragmentManager; // <- specified as unused ERROR
import android.support.v4.view.ViewPager; // <- specified as unused ERROR
import android.util.Log;
public class Main extends FragmentActivity {
...
}
但是,from mongoengine import*
Class Scan(Documnet):
name=StringField()
.....
queryset=Scan.objects.filter(name="Bob")
number1=queryset.count()
number2=len(queryset)
和number1=1782
,number2=1668
任何人都可以告诉我原因吗?
答案 0 :(得分:1)
这是由于documentation.
中提到的以下原因之一在分片群集中,如果orphaned documents存在或chunk migration正在进行中,则db.collection.count()可能会导致计数不准确。
要避免这些情况,请在分片群集上使用
db.collection.aggregate()
方法的$ group阶段对文档进行求和。例如,以下操作计算集合中的文档:
您可以按照文档中的建议使用aggregate
方法执行此操作。
Scan.aggregate(
{'$group': {
'_id': None,
'count': {'$sum': 1}
}}
)