ihiyin 发表于 2024-6-1 10:02:24

【V8】MongoDB数据库插件中的筛选条件支持查数组吗?


我的MongoDB中的数据:


我这样设置的:



但运行结果查不到数据,是插件不支持这样呢,还是我写的不对?

Joe.xu 发表于 2024-6-3 10:23:34

因为这个涉及到外联数据库,同时也是个人插件,不太好挂代码调查,
楼主有跟插件的原作者沟通吗,目前看来配置应该是没问题的

ihiyin 发表于 2024-6-3 10:35:13

Joe.xu 发表于 2024-6-3 10:23
因为这个涉及到外联数据库,同时也是个人插件,不太好挂代码调查,
楼主有跟插件的原作者沟通吗,目前看来 ...

好像不行,要写成mul.0.cj,不过我发现这样也不能满足要求,我改了别的方式了。

Joe.xu 发表于 2024-6-4 09:11:48

感谢楼主的补充说明
后面有问题,欢迎继续发新帖交流:loveliness:

meteor 发表于 2024-6-5 09:46:05

本帖最后由 meteor 于 2024-6-5 09:48 编辑

可以支持数组的查询, 用法是 筛选条件:    mul.name 等于 "王宏",


即用'.'符号来直接访问嵌套属性即可,包括数组对象,也是直接mul.name访问即可

ihiyin 发表于 2024-6-5 09:57:29

meteor 发表于 2024-6-5 09:46
可以支持数组的查询, 用法是 筛选条件:    mul.name 等于 "王宏",




如果写成mul.cj,这个查询的是第一个元素的呢?

Joe.xu 发表于 2024-6-6 09:04:53

数据中包含数组,按理说是需要遍历再取其属性的,原作者能给再说明一下不,
不然大家可能都有点疑惑~

meteor 发表于 2024-6-6 12:26:48

有点疑惑,不知道我理解的数组查询和楼主希望的功能是否存在偏差.
举个例子吧.

比如mongodb中有这两条数据, 每条数据都有带有数组datalist, 数组中的对象有name和dept属性
现在想查找数据中子数组中的 name="joice"的数据,
则应该是找到第二条数据,因为他的子数组datalist中有条记录的的name=joice
此时命令可以这么设置:

测试下,结果拿到


再比如,想查找dept=sc的数据,可以这样设置条件

测试下,结果拿到

因为两条数据中的数组中,都有一条记录的dept=sc,所以这两条数据都认为是符合条件的,被输出了.

不知道楼主是否需求是: 只想查出按照过滤条件查询到的子数组的部分数据,而不是全部符合条件的记录?

meteor 发表于 2024-6-6 12:29:43

Joe.xu 发表于 2024-6-6 09:04
数据中包含数组,按理说是需要遍历再取其属性的,原作者能给再说明一下不,
不然大家可能都有点疑惑~

遍历,取其属性,一旦满足条件了,会认为整大条记录都是符合要求的,而不是只取出数组中的一部分满足条件的数据输出.因为这个是记录是外面包裹的记录,而不是切分数组的小记录

ihiyin 发表于 2024-6-6 14:51:06

meteor 发表于 2024-6-6 12:26
有点疑惑,不知道我理解的数组查询和楼主希望的功能是否存在偏差.
举个例子吧.



明白了,你说的这种情况跟我说的确实不太一样。这里,我只查询数组中第1个元素的属性,不管其他下标的元素。
页: [1] 2
查看完整版本: 【V8】MongoDB数据库插件中的筛选条件支持查数组吗?