胖五talk

mongodb查询数组数据的坑

这篇都是吐槽,没啥干货

数据结构大概是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
....
sc_list: [{
tag: "0",
....
},{
tag: "1",
....
},{
tag: "8",
....
}],
.....
}

目标是从一堆数据中找到sc_list里tag等于”0”的数据。

然后意外的发现本地可以查询的语句在生产环境上无效!然后仔细一查发现mongodb的版本不同,本地测试是2.6.x,生产上的是3.2.x,难道是因为语法变了?

后来仔细查看后发现数组里内容的写法很有多,是me自己写错了。。。。但这里不得不吐槽一下mongodb的文档,一个查询在不同版本的例子还有一些标题的命名规则都不一样,侧边栏的导航标题也是,找起来异常费劲,这也是导致一开始搞错了语法的原因

最后送上几个不同版本查数组内嵌对象的文档链接:

总结的校训就是

查文档要仔细呀!