代码之家  ›  专栏  ›  技术社区  ›  Rishabh Mishra

如何使用条件参数查询mongodb中的多个文档

  •  0
  • Rishabh Mishra  · 技术社区  · 7 年前

    我有一个消息文档 groupId createdTS 对于查询,我有一个对象数组 lastVisit . 我想查询每个 之后 上次访问

    我试过了 $in 创建DTS 具有 上次访问

    const GroupMemberSchema = new mongoose.Schema({
      userId: { type: String, required: true },
      groupId: { type: String, required: true },
      addTS: { type: Date, default: Date.now },
      lastVisit: { type: Date, default: Date.now }
    });
    

    消息架构

    const GroupMessageSchema = new mongoose.Schema({
      id: { type: String, required: true },
      groupId: { type: String, required: true },
      content: { type: String, required: true },
      createdTS: { type: Date, default: Date.now },
    });
    

    用于查询

    GroupMessage.find({groupId: {$in: groupIds}})
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   rkm    7 年前

    groupId 同时大于适当值 lastVisit

    {
      "$or": [
        {
          "$and": [
            { "groupId": _groupId[i] }, 
            { "createdTS": { "$gt": _lastVisit[i] } } 
          ]
        },
        ...
      ]
    }
    

    _groupId[i] _lastVisit[i] 是组列表和lastVisite时间戳的数组元素。