一个奇怪的问题,帮忙看下

2018-04-04 11:39:52 +08:00
 ilaipi
有张(个)表(集合)users,其中两个字段 name&hospital。hospital 是另一个集合的 id,这里存的是字符串形式。
我在查询的时候,用 user.hospital,会说是无效的 ObjectId。到 users 表里来查,出现这样的结果,该怎么查问题呢?



TIPS:用 hospital 和 name 两个字段查,结果完全不重合的。两个姓王的,但不是一个人。
3587 次点击
所在节点    MongoDB
5 条回复
geying
2018-04-04 12:54:35 +08:00
第一句话我看了三遍才看清楚
另外我没看懂的是你拿什么去哪里查?
你在 user 表里保存的字符串 hospital
如果要在 hospital 查应该 find({_id:ObjectId("xxxxxxxxxxxxx")})

不知道是不是说的这个问题,是我这回会迷糊呢还是理解能力有问题
ilaipi
2018-04-04 13:01:36 +08:00
@geying 我是在 mongo shell script,查询 users 表,关联查询对应的 hospital。然后碰到了无效的 objectid 错误。

然后就去找为什么这个 id 会出错。先从 users 中查 hospital 是这个值的,就发现了这样奇怪的问题。
ilaipi
2018-04-04 13:03:57 +08:00
现在知道为什么了,还是不可见字符的原因。

第二个查询 id 的前面莫名多了个不可见字符。一开始用的 robo 3T,这个字符显示不出来。后来用 NoSQLBooster for MongoDB,打印出来的 hospital 字段开头有个特殊字符,现在处理掉了,没有截图了。
geying
2018-04-04 13:23:01 +08:00
@ilaipi ... 好吧 一开始我就觉得 但是我以为你是没用 ObjectId 因为在 spring-data-mongodb 里查 id 不需要
解决了就好
ilaipi
2018-04-04 13:37:44 +08:00
@geying 嗯嗯,谢谢啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/444239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX