Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongoDB问题(或否)当使用$lte和$gte的值相同时,查询不';不返回任何值_Mongodb_Find_Range - Fatal编程技术网

mongoDB问题(或否)当使用$lte和$gte的值相同时,查询不';不返回任何值

mongoDB问题(或否)当使用$lte和$gte的值相同时,查询不';不返回任何值,mongodb,find,range,Mongodb,Find,Range,让我举个例子: mongos> db.test.insert( { a: 0.1, b: 1, c : 0.01 } ) mongos> db.test.insert( { a: 0.2, b: 2, c : 0.02 } ) mongos> db.test.insert( { a: 0.3, b: 3, c : 0.03 } ) mongos> db.test.find() { "_id" : ObjectId("5225e072dd144e45bf406d42"),

让我举个例子:

mongos> db.test.insert( { a: 0.1, b: 1, c : 0.01 } )
mongos> db.test.insert( { a: 0.2, b: 2, c : 0.02 } )
mongos> db.test.insert( { a: 0.3, b: 3, c : 0.03 } )
mongos> db.test.find()
{ "_id" : ObjectId("5225e072dd144e45bf406d42"), "a" : 0.1, "b" : 1, "c" : 0.01 }
{ "_id" : ObjectId("5225e07add144e45bf406d43"), "a" : 0.2, "b" : 2, "c" : 0.02 }
{ "_id" : ObjectId("5225e082dd144e45bf406d44"), "a" : 0.3, "b" : 3, "c" : 0.03 }
mongos> db.listings.find({a: { $gte: 0.2, $lte: 0.2 } } );
mongos> db.listings.count({a: { $gte: 0.2, $lte: 0.2 } } );
0
如您所见,即使集合中存在文档,查询也不会返回任何结果。我知道这是wierd使用范围搜索一个简单的相等,但在我看来,这应该工作,并返回预期的文档。 谢谢你的回答


忘了提到mongoDB verison is 2.4.4-pre-。

问题是您将数据插入测试集合,但对列表集合执行查询。如果查询测试集合,则所有内容均按预期工作:

> db.test.insert( { a: 0.1, b: 1, c : 0.01 } )
> db.test.insert( { a: 0.2, b: 2, c : 0.02 } )
> db.test.insert( { a: 0.3, b: 3, c : 0.03 } )

> db.test.count({a: { $gte: 0.2, $lte: 0.2 } } )
1
> db.test.find({a: { $gte: 0.2, $lte: 0.2 } } );
{ "_id" : ObjectId("5225ecd155feffaf74591328"), "a" : 0.2, "b" : 2, "c" : 0.02 }