簡體   English   中英

Mongodb查詢以其值查找所有鍵

[英]Mongodb query to find all the keys by its values

我是mongodb的新手。 我有一個看起來像的文件 在此處輸入圖片說明

因此,我想對對象“用戶”進行查詢,該查詢為我提供了值為true的所有鍵名稱。

請用java回答

您可以在3.4.4版本中嘗試以下聚合管道。

使用$objectToArray然后是$filter + $map ,將users嵌入的文檔更改為鍵值對數組,以提取匹配值的鍵。

db.collection.aggregate([
    {
        $project: {
            keys: {
                $map: {
                    input: {
                        $filter: {
                            input: {$objectToArray: "$users"},
                            as: "resultf",
                            cond: {
                                $eq: ["$$resultf.v", true]
                            }
                        }
                    },
                    as: "resultm",
                    in: "$$resultm.k"
                }
            }
        }
    }
])

以下查詢將為您提供所有用戶鍵,這些鍵的值在數組格式中為true-

db.collectionName.find({},{users:1}).map(function(myDoc){
  var names = [];
  for (var key in myDoc.users) {
    if(myDoc.users[key]){
      names.push(key);
    }
  }
  return names;
});

暫無
暫無

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

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