将字段与数组的任何元素匹配的Mongo查询

时间:2015-12-08 07:59:32

标签: r mongodb rmongodb

我正在尝试通过R(rmongodb包)查询Mongo Db。我有一个简单的要求:

  • 返回字段" email"匹配vector usr $ email中的任何电子邮件。我认为我很接近,但却无法找到正确的语法来完成它。

我看到了对早期问题(Mongo: If any array position matches single query)的回应,我正在尝试:

eids_l <- paste0("'", unique(usr$email), "'", collapse=", ")
eids_l1 <- sprintf("[ %s ]", eids_l)
q <- sprintf('{"email": {"$in": %s}}', eids_l1)
cursor <- mongo.find.all(mongo, namespace, buf)

我仍然收到错误:

Error in mongo.bson.from.JSON(arg) : 
  Not a valid JSON content: {"email": {"$in": [ 'xx@gmail.com',

1 个答案:

答案 0 :(得分:1)

  

cursor&lt; - mongo.find.all(mongo,&#34; namespace&#34;,query =&#39; {&#34; email&#34;:{   &#34; $ in&#34;:[&#34; xx@gmail.com" ;,&#34; yy@gmail.com" ;,&#34; zz@gmail.com" ]}}&#39;)

小心使用撇号(&#39;)和引号(&#34;)。

我总是使用rmongodb备忘单:

https://cran.r-project.org/web/packages/rmongodb/vignettes/rmongodb_cheat_sheet.pdf