为什么我用php查询mongodb数据库中的某个集合中的文档的条数,得到的结果和实际情况不一致? 50
我刚换了电脑,装的是win8.164位系统,我装了PHP和apache,都是32位的,我在虚拟机上装了mongodb数据库,别的好像都没有问题,就是在用count()函数...
我刚换了电脑,装的是win8.1 64位系统,我装了PHP 和apache,都是32位的,我在虚拟机上装了mongodb数据库,别的好像都没有问题,就是在用count()函数查询集合中符合某个条件的文档的条数的时候,有时候能得到准确的结果,有时候就得到0,明明数据库中是有记录的,但有时候就是查不到准确的结果,究竟是怎么回事呢?百思不得其解,请大神帮忙啊!
我进入mongodb数据库,用这样的命令db.users.find().count()就总能查询到准确的结果,难道是php扩展的问题?以前没发现这样的问题啊!
我又发现了问题,用PHP程序往数据库中插入数据又插不进去了,但进入数据库插入数据就能正常插入,难道还是PHP mongodb扩展的问题?
我把MONGODB直接装到了win8上,不用虚拟机了,这个问题就解决了,我想可能是虚拟机的问题 展开
我进入mongodb数据库,用这样的命令db.users.find().count()就总能查询到准确的结果,难道是php扩展的问题?以前没发现这样的问题啊!
我又发现了问题,用PHP程序往数据库中插入数据又插不进去了,但进入数据库插入数据就能正常插入,难道还是PHP mongodb扩展的问题?
我把MONGODB直接装到了win8上,不用虚拟机了,这个问题就解决了,我想可能是虚拟机的问题 展开
1个回答
展开全部
我也遇到过:
官方文档解释了这种现象的原因以及解决方法:
不准确的原因:
操作的是分片的集合(前提);
shard分片正在做块迁移,导致有重复数据出现
存在孤立文档(因为不正常关机、块迁移失败等原因导致)
解决方法
使用聚合aggregate的方式查询count数量,shell命令如下:
db.collection.aggregate(
[
{ $group: { _id: null, count: { $sum: 1 } } }
])
也可以直接将原数据导出,将表删除后重新导入就可以了(我是这么处理的)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询