我是rmongodb的新手。目前,我正在处理一些基本查询。假设我有两个我感兴趣的变量:求职者和他们的GPA' s。他们的一些GPA是空白的,因为他们没有包含它们,所以他们的bson值为空。问题是我的查询返回不同的长度列表然后我很难将候选人匹配到他们的名字。名称查询返回153个候选项的数据框,GPA查询返回132的数据框...因此我无法匹配它们。
这就是我一直在做的事情。
### pulling candidate first names and creating a data frame
buf <- mongo.bson.buffer.create()
query <- mongo.bson.from.buffer(buf)
buf <- mongo.bson.buffer.create()
err <- mongo.bson.buffer.append(buf, "data.FNAME", 1)
field <- mongo.bson.from.buffer(buf)
out <- mongo.find(mongo, "dynamite.tdpCandidates", query, fields = field)
res <- NULL
while(mongo.cursor.next(out)){
value <- mongo.cursor.value(out)
Rvalue <- mongo.bson.to.list(value)
res <- rbind(res, Rvalue)
}
test1 <- data.frame(firstName = unlist(res[,2], recursive = TRUE))
test1 <- data.frame(lapply(test1, as.character), stringsAsFactors=FALSE)
返回153个名字。
#### pulling candidate education GPA and creating a dataframe from them
buf <- mongo.bson.buffer.create()
query <- mongo.bson.from.buffer(buf)
buf <- mongo.bson.buffer.create()
err <- mongo.bson.buffer.append(buf, "data.EDUCATION.GPA", 1)
field <- mongo.bson.from.buffer(buf)
out <- mongo.find(mongo, "dynamite.tdpCandidates", query, fields = field)
res <- NULL
while(mongo.cursor.next(out)){
value <- mongo.cursor.value(out)
Rvalue <- mongo.bson.to.list(value)
res <- rbind(res, Rvalue)
}
test10 <- data.frame(candGPA = unlist(res[,2], recursive = TRUE))
test10 <- data.frame(lapply(test10, as.character), stringsAsFactors=FALSE)
返回132 GPA&#39; s ..
如果有更好的方法来执行此操作或只是查询bson null的简单方法,我将不胜感激任何建议。