如何使用$and运算符构造rmongodb查询
我想使用rmongodb访问R中的MongoDB数据库。我试图构造以下查询:如何使用$and运算符构造rmongodb查询,r,mongodb,rmongodb,R,Mongodb,Rmongodb,我想使用rmongodb访问R中的MongoDB数据库。我试图构造以下查询: {'$and': [{_id: {'$gte': '2013-01-01'}}, {_id: {'$lte': '2013-01-10'}}]} 我尝试了三种不同的方法来创建bson对象,但都不走运 方法1: buf = mongo.bson.buffer.create() mongo.bson.buffer.start.array(buf, '$and') mongo.bson.buffer.append(buf,
{'$and': [{_id: {'$gte': '2013-01-01'}}, {_id: {'$lte': '2013-01-10'}}]}
我尝试了三种不同的方法来创建bson对象,但都不走运
方法1:
buf = mongo.bson.buffer.create()
mongo.bson.buffer.start.array(buf, '$and')
mongo.bson.buffer.append(buf, '_id', list('$gte'='2013-01-01'))
mongo.bson.buffer.append(buf, '_id', list('$lte'='2013-01-10'))
mongo.bson.buffer.finish.object(buf)
bson = mongo.bson.from.buffer(buf)
方法2:
buf = mongo.bson.buffer.create()
mongo.bson.buffer.start.array(buf, '$and')
mongo.bson.buffer.start.object(buf, '_id')
mongo.bson.buffer.append(buf, '$gte', '2013-01-01')
mongo.bson.buffer.finish.object(buf)
mongo.bson.buffer.start.object(buf, '_id')
mongo.bson.buffer.append(buf, '$lte', '2013-01-10')
mongo.bson.buffer.finish.object(buf)
mongo.bson.buffer.finish.object(buf)
bson = mongo.bson.from.buffer(buf)
方法3:
mongo.bson.from.list(list('$and'=list('_id' = list('$lte'='2013-01-10'), '_id' = list('$gte'='2013-01-01'))))
它们都不起作用。所有返回空结果
我搜索了一段时间,唯一类似的问题是
解决方案是使用RMongo,这在R2.50中不可用
我陷入这个问题好几天了。如果我找不到解决方案,我将不得不用python编写一个外部脚本,并从R调用它。我不知道R,但您实际上不需要为该查询使用
$和
。这有点简单,应该更容易翻译成R:
{{u id:{'$gte':'2013-01-01','$lte':'2013-01-10'}
您创建mongo bson阵列的方法是错误的。你错过了部分
mongo.bson.buffer.start.object(buf, "0")
...
mongo.bson.buffer.finish.object(buf)
mongo.bson.buffer.start.object(buf, "1")
...
mongo.bson.buffer.finish.object(buf)
有关工作示例,请查看以下最新评论:
我希望现在能奏效。我正在研究一个更简单的解决方案