簡體   English   中英

如何使用條件參數在mongodb中查詢多個文檔

[英]How to query multiple documents in mongodb with conditional params

我有帶有groupIdcreatedTS字段的消息文檔。 對於查詢,我有具有groupIdlastVisit的對象數組。 我想查詢lastVisit之后每個groupId所有消息

我試着用$in同組id,但它沒有過濾createdTSlastVisit

成員架構

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}})

如果我理解正確的問題,那么您需要獲取與每個groupId匹配的記錄,並且同時大於適當的lastVisit 如果將其轉換為MongoDB查詢,將是這樣的:

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

其中_groupId[i]_lastVisit[i]是組列表和lastVisit時間戳的數組元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM