背景
在使用Mongodb Hadoop Connector的时,采用了Mongodb-based方式,也就是hive直接在mongo上进行查询,在测试的时候,遇到了一个问题,那就是在进行查询的时候,where后面不可以使用“=”。
示例
首先在Mongodb中插入两条测试数据
在hive下创建表,使用如下语句
create external table user_test(id string,name string)
stored by 'com.mongodb.hadoop.hive.MongoStorageHandler'
with serdeproperties('mongo.columns.mapping'='{"id":"_id","name":"name"}')
tblproperties('mongo.uri'='mongodb://mongo_user:mongo_pwd@mongo_host:mongo_ip/mongo_db.user_test');
下面开始直接演示,如下图所示
从上图可以明显看出,“=”并不能获得期望的结果,可以通过使用“in”或者“like”来获取期望结果。同时,“==”并不会报错,而且效果与“=”一致,都是错误的。