![](/img/trans.png)
[英]How to increment value in multiple fields and multiple documents in mongodb in one query
[英]How to query multiple documents in mongodb with conditional params
我有帶有groupId
和createdTS
字段的消息文檔。 對於查詢,我有具有groupId
和lastVisit
的對象數組。 我想查詢lastVisit
之后每個groupId
所有消息
我試着用$in
同組id,但它沒有過濾createdTS
與lastVisit
成員架構
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.