使用.attrs属性的MongoDB查询

时间:2013-07-22 20:25:19

标签: r mongodb rmongodb

鉴于我有以下json:

{
  "A" : {...},

  ".attrs" : {"A1": "1" }
}

我想在R中使用rmongodb包进行查询。我无法查询A.attrs字段值。有什么建议吗?

mongo <- mongo.create()
if (mongo.is.connected(mongo)) {
  buf <- mongo.bson.buffer.create()
  mongo.bson.buffer.append(buf, "A.attrs", "1")
  query <- mongo.bson.from.buffer(buf)

  # assume "db.collection" is correct
  cursor <- mongo.find(mongo, "db.collection", query, limit=1000L)
  # Step though the matching records and display them
  while (mongo.cursor.next(cursor))
    print(mongo.cursor.value(cursor))
    mongo.cursor.destroy(cursor)
}

我知道(。)在Mongo中不是有效的字段名称;它是使用xml到json转换器生成的。

“\ uff0E”作为转义字符没有帮助。 最好将.attrs重命名为有效的约定,但在json中的各种嵌套级别有几个.attrs。

1 个答案:

答案 0 :(得分:2)

密钥中的句号是个问题。如果我们认为它是好的,我想你应该构建你的查询,如:

mongo.bson.buffer.append(buf, ".attrs.A1", "1")

相关问题