示例json对象:
{ "_id" : ObjectId( "55887982498e2bef5a5f96db" ),
"a" : "x",
"q" : "null",
"p" : "",
"s" : "{\"f\":{\"b\":[\"I\"]},\"time\":\"fs\"}" }
需要所有时间= fs的文件 我的问题:
{"s":{"time" : "fs"}}
上面的返回零产品,但事实并非如此。
答案 0 :(得分:0)
这里有两个问题。首先,s
显然是一个字符串,因此您的查询无法正常工作。您可以使用$regex
,如下所示,但它不会非常有效:
{s: {$regex: '"time"\:"fs"'}}
我建议将s
字段转换为正确的文档。您可以使用JSON.parse
来执行此操作。可以使用db.foo.find().snapshot().forEach
根据当前值更新文档。有关详细信息,请参阅this answer。
第二个问题是您的查询完全错误。要匹配time
字段,您应使用点表示法:
{"s.time" : "fs"})