【发布时间】:2012-09-27 11:25:15
【问题描述】:
似乎我使用 mongodb count() 和 python len() 得到了 2 个不同的结果
db.users.find({"adresse.coord":{"$within":{"$center":[[4.365041,36.743954],100]}}}).distinct("produit_up")
Out[17]:
[{u'avatar': {u'avctype': u'image/jpeg',
u'orientation': u'portrait',
u'photo': ObjectId('506f2ee93a5f3a0528ab8621')},
u'spec': {u'abus': 0,
u'date': u'2012-10-05',
u'description': u'brrrrrrrrrrr',
u'id': u'tofla134946378579',
u'namep': u'nokia 6230',
u'nombre': 2,
u'prix': 1000,
u'tags': [u'nokia', u'6230', u'photo'],
u'vendu': False}},
{u'avatar': {u'avctype': u'image/jpeg',
u'orientation': u'portrait',
u'photo': ObjectId('506867863a5f3a0ea84dcd6c')},
u'spec': {u'abus': 0,
u'date': u'2012-09-30',
u'description': u"portable tr\xe8s solide, peu servi, avec batterie d'une autonomie de 3 heures.",
u'id': u'alucaard134901952647',
u'namep': u'nokia 3310',
u'nombre': 1,
u'prix': 1000,
u'tags': [u'portable', u'nokia', u'3310'],
u'vendu': False}},
{u'avatar': {u'avctype': u'image/jpeg',
u'orientation': u'portrait',
u'photo': ObjectId('506f2b3e3a5f3a0b3c4731a9')},
u'spec': {u'abus': 0,
u'date': u'2012-10-05',
u'description': u'bzzzzzzzzzz',
u'id': u'alucaard134946284638',
u'namep': u'nokia 6230',
u'nombre': 1,
u'prix': 2000,
u'tags': [u'nokia', u'nok', u'noki'],
u'vendu': False}}]
db.users.find({"adresse.coord":{"$within":{"$center":[[4.365041,36.743954],100]}}}).count()
Out[18]: 2
len(db.users.find({"adresse.coord":{"$within":{"$center":[[4.365041,36.743954],100]}}}).distinct("produit_up"))
Out[19]: 3
【问题讨论】:
-
后者不同——
distinct()在最后,是故意的吗? -
它应该给我 3 个结果,但计数忽略了一个结果,那为什么会这样呢?
-
我首先认为您的意思是标准内置序列
.count()方法,仅基于您的问题标题。 :-P -
“produit_up”是嵌入到文档中的数组吗?
-
每个文档有一个吗?看起来您的查询匹配两个文档,但它们之间具有三个不同的“produit_up”值。为什么你认为这不一致?返回 3 的两个查询相同,返回 2 的查询不同。