基於數組中的值查找

大衛

我在貓鼬中有以下架構:

userSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
        },
    team: {
        type: Schema.Types.ObjectId, ref: 'Team',required:true
        }
})

teamSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
    }

   coaches: []
})

我想加入這些集合,如果用戶 id 在coaches字段中,它是團隊方案中的字符串數組。

加入後,我需要過濾以獲取在其coaches屬性中具有特定 id 的用戶

因此,populate 不適合這裡。我嘗試使用查找,但找不到正確的方法來執行此操作。對此有什麼想法嗎?

土生土長的
  • $matchcoaches數組中的用戶 ID
  • $addFields編輯coaches數組
  • $map迭代coaches數組循環
  • $toObjectId將字符串類型coachesid轉換為 objectId 類型
  • $lookup 與用戶集合
let result await Team.aggregate([
  { $match: { coaches: "5a934e000102030405000001" } },
  {
    $addFields: {
      coaches: {
        $map: {
          input: "$coaches",
          in: { $toObjectId: "$$this" }
        }
      }
    }
  },
  {
    $lookup: {
      from: "users", // update to correct users collection name
      localField: "coaches",
      foreignField: "_id",
      as: "coaches"
    }
  }
])

操場

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基於數組值的對象鍵

在 SwiftUI 中循環遍歷實體數組以基於數組數據中的值構建樹結構視圖

在數組中查找重複值

map:有什麼方法可以將鍵添加到基於其值的數組中

基於多個值的pyspark數據幀數組如何處理

基於對象屬性查找數組條目的問題

不基於字符串拆分數據框,而是基於列中的值

JavaScript 查找:如果對象鍵存在於另一個對像數組中,則更新數組中對象的值,類似於 excel 中的 v-lookup

基於 Int 數組過濾數組

用於基於結構的數組的 Python

使用 React 基於嵌套值創建新的對像數組

基於復雜索引方案分配 numpy 數組值

將值合併到基於類似對象鍵的數組 javascript

在對像中查找值,即在數組中

PHP中基於一致數組鍵對多維數組進行排序

根據以數組形式存在於對象值中的值搜索對像數組

測試對像數組的值是否等於 Chai 中另一個數組的值

在數組中查找項目並更新其值

基於長度的數組中第 k 個最大元素(字符串)

在 Javascript 中將 JSON 對象轉換為基於索引的 JSON 數組

如何使用cypress檢查對像數組中的值是否等於某個值?

關於 JavaScript 中遞歸數組中的最大值的問題

如何過濾對像數組並根據另一個數組過濾掉值?過濾應該基於鍵而不是值

如何基於 R 中的列數據使用兩個不同的數據幀組合條形圖?

在excel中從逗號分隔的數據中查找大於和小於X的值

如何將 JuMP 約束設置為等於數組中的值?

基於python中的值的數據框中的新行

基於多維數組生成標記

pymongo:基於順序的數組比較