在MongoDB(NodeJS)MongoDB中,如何查询(查找)填充字段?

我有两个集合:用户和推文。 模式是这样的(我删除了不重要的领域,因为他们很多):

UsersSchema = { _id:Number, followers_count:Number }; TweetsSchema = { _id:Number, is_retweet:Boolean, user:{type:Number, ref:"Users"} } 

当我查询推文时,我通常会做一个populate("user")所以我知道谁是推特的用户。 到现在为止还挺好。 但是现在,我需要检索所有推特(is_retweet)的推文的追随者人数(followers_count)。 我已经尝试了聚合,但是我不能使用尚未在Tweets模式(followers_count)中创build的参数进行求和。

我没有太多的Mongo经验:(我已经search了一段时间的答案…是否有任何方法来解决这个查询,或者我必须首先查询所有的用户id在推文中出现与is_retweet,然后另一个查询返回该ID数组的followers_count?

MongoDB不会做连接。 如果您需要两个集合中可用的信息,则至less需要两个查询。

根据您的“典型”查询的具体情况,您应该考虑将一些或全部用户信息反规范化为一条推文。

你的查询也有一个语义问题。 你想要哪个追随者? 他们在推特时推出的追随者人数? 当你拉他们的用户文件时,他们的追随者? 对于转发来说,了解他们在推特最终转推时有多less追随者可能更为重要。 你可以想象一个社交媒体个性从8个追随者开始,啁啾140个字符的明确的光辉,并通过转发获得的转发有两个月后拥有15000万追随者。