Mongo db:查询嵌套的json

时间:2015-06-23 16:55:58

标签: mongodb find

示例json对象:

{ "_id" : ObjectId( "55887982498e2bef5a5f96db" ),
  "a" : "x",
  "q" : "null",
  "p" : "",
  "s" : "{\"f\":{\"b\":[\"I\"]},\"time\":\"fs\"}" }

需要所有时间= fs的文件 我的问题:

{"s":{"time" : "fs"}}
上面的

返回零产品,但事实并非如此。

1 个答案:

答案 0 :(得分:0)

这里有两个问题。首先,s显然是一个字符串,因此您的查询无法正常工作。您可以使用$regex,如下所示,但它不会非常有效:

{s: {$regex: '"time"\:"fs"'}}

我建议将s字段转换为正确的文档。您可以使用JSON.parse来执行此操作。可以使用db.foo.find().snapshot().forEach根据当前值更新文档。有关详细信息,请参阅this answer

第二个问题是您的查询完全错误。要匹配time字段,您应使用点表示法:

{"s.time" : "fs"})