db.getCollection(“rank”).find({“$where:”this.stats > this.stats”}).limit(1000).count(0)
有啥解决办法不
$where is not allowed in this context
heavenm 选择最佳答案
经过测试,发现3.4版本使用$where可以进行count。如果是limit之后count,这个limit是忽略的
不管是3.4还是4.2版本中$where都是可以count。
shard1:PRIMARY> db.version();
3.4.23
shard1:PRIMARY> db.xiaoxu.find({$where:’this.A>this.B’}).limit(2).count(0)
7
shard1:PRIMARY> db.xiaoxu.count({$where:’this.A>this.B’})
7
shard1:PRIMARY>
shard1:PRIMARY> db.version();
4.2.14
shard1:PRIMARY> db.xiaoxu.find({$where:’this.A>this.B’}).limit(2).count(0)
8
shard1:PRIMARY> db.xiaoxu.count({$where:’this.A>this.B’})
8
shard1:PRIMARY> db.xiaoxu.count({$expr:{$gte:[‘$A’,’$B’]}})
8
shard1:PRIMARY>
heavenm 选择最佳答案
读取内容可以,但是count()不行