MongoDB技术问题:如何获取我关注的用户数据?
正确查询关注你的用户数据的MongoDB方法
你之前的查询无法返回结果,是因为MongoDB对数组内对象的精确匹配要求对象的所有键值对完全一致。你只指定了_id,但实际followers数组里的对象还包含name字段,所以无法匹配。
正确的查询方式是使用点符号直接定位数组内对象的特定字段:
User.find({ "followers._id": "exampleid1" })
这个查询会找出所有followers数组中存在至少一个对象,且该对象的_id等于"exampleid1"的用户文档,也就是所有关注你的用户。
如果需要同时匹配多个字段(比如同时匹配_id和name),可以用$elemMatch:
User.find({ followers: { $elemMatch: { _id: "exampleid1", name: "你的用户名" } } })
但针对你的需求,只匹配_id的话,第一种点符号的写法更简洁高效。
内容的提问来源于stack exchange,提问作者Luke M
相关产品推荐
相关产品推荐

