[英]Mongodb query to find all the keys by its values
您可以在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.