Mongodb Mongo FIND查询返回集合,其中有两个文档';s字段包含相同的值(其中一个是数组)

Mongodb Mongo FIND查询返回集合,其中有两个文档';s字段包含相同的值(其中一个是数组),mongodb,Mongodb,假设我有一个名为Messages的集合,一条消息可以有多个父消息,可以通过检查消息\u id是否在parent\u id数组中找到,其中parent\u id是一个数组 { message_id : 22, parent_id: [22,11], } 我如何创建mongo查询来查找它 现在我有以下几点,但它失败了: db.messages.find({this.message_id: { $in: this.parent_id}}) 您可能知道MongoDB不支持连接,我建议您在

假设我有一个名为Messages的集合,一条消息可以有多个父消息,可以通过检查消息\u id是否在parent\u id数组中找到,其中parent\u id是一个数组

{
   message_id : 22,
   parent_id: [22,11],
}
我如何创建mongo查询来查找它

现在我有以下几点,但它失败了:

db.messages.find({this.message_id: { $in: this.parent_id}})

您可能知道MongoDB不支持连接,我建议您在应用程序级别执行此操作,使用MongoShell可以运行类似的操作

//Get the message in which you are interested to get their parents
var child = db.messages.findOne({message_id: 22});
//Go with the array to search the parents.
db.messages.find({message_id : { $in :  child.parent_id }});

我认为您需要分两步进行,除非有人知道更优雅的解决方案。

这绝对不是“MongoDB聚合-匹配数组中的if值”的重复。这个问题是关于聚合的。我指的是mongo find查询。它们是mongodb中两个完全不同的查询。