आप objectToArray
. का उपयोग करके डेटा स्रोत में डेटा को फिर से आकार देकर ऐसा कर सकते हैं
db.collection.aggregate([
{
"$project": {
"data": {
"$objectToArray": "$$ROOT"
}
}
},
{
$unwind: "$data"
},
{
"$match": {
"data.v": {
$regex: "hello"
}
}
}
])
एक और उन्नत संस्करण यहां यह डेटा को फिर से आकार देता है
db.collection.aggregate([
{
"$project": {
"data": {
"$objectToArray": "$$ROOT"
}
}
},
{
$unwind: "$data"
},
{
"$match": {
"data.v": {
$regex: "hello"
}
}
},
{
$group: {//Grouping back and restructuring the data so that objectToArray will bring the original format easily.
"_id": "$_id",
data: {
"$addToSet": {
k: "$data.k",
v: "$data.v"
}
}
}
},
{
"$project": {
"data": {
"$arrayToObject": "$data"
}
}
}
])
arrayToObject
. के दस्तावेज़ देखें और objectToArray
, फिर $regex