最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

我如何可以查询MongoDB的比较对象的数组?

IT培训 admin 4浏览 0评论

我如何可以查询MongoDB的比较对象的数组?

我设计一个消息传递功能。我有一个用户收藏它包含的东西像ID,名字和姓氏。我也有一个消息集合包含如作者ID,邮件正文等的值的数组最后我有一个交谈集合具有ID和参与者,这是用户ID的数组。

我想这可能不是一个很好的结构,因为我希望能够运行,返回的所有用户(ID,姓氏和名字),一个用户拥有消息历史记录与查询。事情是这样的,我似乎无法运行查询将返回我需要的所有信息。我是否需要重组,或者是有没有办法运行此查询?

下面是结构的一个例子:

Conversation:
{ id: 123
  participants: ['<user ID here>', '<user ID here>'],
}

User:{
id:654,
firstName: John
lastName: Doe

Message:
{ sender: 'john', 
  content: 'howdy', 
  time_created: new Date(),
  converstationId: 123
},
{ sender: 'marry', 
  content: 'good u', 
  time_created: new Date(),
  converstationId: 123 
},

我尝试以下的一些变化,但我从来没有得到任何东西,但一个空数组回:

db.Users.aggregate([
    {
       $unwind: "$participants"
    },
    {
       $lookup:
          {
             from: "conversations",
             localField: "participants",
             foreignField: "_id",
             as: "response"
         }
    },
    {
       $match: { "response": { $ne: [] } }
    }
 ])

所以我的问题是:我怎样才能得到所有参与者阵列中的相关用户ID的用户?

回答如下:

你的问题是有点模糊,但我假设你正在寻找的lookup操作。 MongoDB的查找操作类似于SQL连接功能。

我如何可以查询MongoDB的比较对象的数组?

我设计一个消息传递功能。我有一个用户收藏它包含的东西像ID,名字和姓氏。我也有一个消息集合包含如作者ID,邮件正文等的值的数组最后我有一个交谈集合具有ID和参与者,这是用户ID的数组。

我想这可能不是一个很好的结构,因为我希望能够运行,返回的所有用户(ID,姓氏和名字),一个用户拥有消息历史记录与查询。事情是这样的,我似乎无法运行查询将返回我需要的所有信息。我是否需要重组,或者是有没有办法运行此查询?

下面是结构的一个例子:

Conversation:
{ id: 123
  participants: ['<user ID here>', '<user ID here>'],
}

User:{
id:654,
firstName: John
lastName: Doe

Message:
{ sender: 'john', 
  content: 'howdy', 
  time_created: new Date(),
  converstationId: 123
},
{ sender: 'marry', 
  content: 'good u', 
  time_created: new Date(),
  converstationId: 123 
},

我尝试以下的一些变化,但我从来没有得到任何东西,但一个空数组回:

db.Users.aggregate([
    {
       $unwind: "$participants"
    },
    {
       $lookup:
          {
             from: "conversations",
             localField: "participants",
             foreignField: "_id",
             as: "response"
         }
    },
    {
       $match: { "response": { $ne: [] } }
    }
 ])

所以我的问题是:我怎样才能得到所有参与者阵列中的相关用户ID的用户?

回答如下:

你的问题是有点模糊,但我假设你正在寻找的lookup操作。 MongoDB的查找操作类似于SQL连接功能。

发布评论

评论列表 (0)

  1. 暂无评论