doc1:
{ "a": {} }
查询出来之后添油加醋保存为另外一个 doc, 就变成了
doc2:
{ "a": [] }
请问大佬解答一下如何处理吗...
![]() | 1 rust 2022-04-28 10:44:31 +08:00 请把你"添油加醋"的代码发出来 |
4 HardStone OP 就是 {} 查询出来是 [], 然后保存的时候要如何保存为原来的 {}, 搜了一些都是答非所问 |
5 HardStone OP |
![]() | 6 lambdaq 2022-04-28 10:51:39 +08:00 ![]() 看到标题,心里想,这怕不是用了 php 点进来一看,果然,分区是 php |
![]() | 7 chendy 2022-04-28 10:52:15 +08:00 1. 看下 mongo 的库有没有相关配置,不把空对象读取成空数组的(类似 json_decode(json, true) 2. 保存之前自己做判断,如果是空数组,转换成 (object) 存回去 |
9 HardStone OP @chendy #7 我也想到了, 但是想想, 也许可以避免存空数组 /空对象这种容易产生歧义的, 直接存 null 就不会有这个问题 /这么多额外步骤 |
![]() | 10 fuchish112 2022-04-28 13:47:28 +08:00 暂时想到的是 new \stdClass()解决 |
![]() | 11 fkdtz 2022-04-28 14:56:26 +08:00 ![]() 这让我想起那天一个帖子,吐槽 json 格式复杂,一会用 [] ,一会用 {} ,还是 PHP 简洁,全都是 [] ... 逃 |
![]() | 12 sujin190 2022-04-28 15:53:51 +08:00 似乎只能 new \stdClass()了,毕竟 php 想要强行区分空数组还是空字典似乎只能这样,其实吧你要是只是 php 读写似乎这样存问题也不大,就怕你还有换个语言读写的需求那真是坑人 |
![]() | 13 abigeater 2022-04-28 17:51:14 +08:00 踩过这个坑,我的选择是这个字段干脆就不传了。。。 既然没数据存起来也没啥用。 |
![]() | 15 limingxinleo 2022-04-30 14:46:21 +08:00 var_dump json_decode(json_encode(new stdClass), true) 你就知道为什么了 |