db.test.aggregate([
{
$project: {
dec: "$dec",
bin: "$bin",
original_bin: "$bin"
}
},
{
$unwind: "$bin"
},
{
$group: {
_id: {
dec: "$dec",
bin: "$bin",
original_bin: "$original_bin"
},
total: {
$sum: 1
}
}
},
{
$group: {
_id: {dec: "$_id.dec", original_bin: "$_id.original_bin"},
sums: {
$addToSet: "$total"
}
}
},
{
$match: {
sums: {
$size: 1
}
}
},
{
$project: {
_id: 0,
dec: "$_id.dec",
bin: "$_id.original_bin"
}
}
]);
我有这样的样本数据:
{"dec":1,bin: [0,0,0,1,0,1,1,1,0,1,0,1,0,1,0,0]}
{"dec":2,bin: [0,1,0,1,0,0]}
{"dec":3,bin: [1,0,1,0,1,0]}
{"dec":4,bin: [0,1,0,0]}
{"dec":5,bin: [0,0,0,1,1,1]}
{"dec":6,bin: [0,1]}
给定对样本数据的查询将返回所需的数组:
{ "dec" : 6, "bin" : [ 0, 1 ] }
{ "dec" : 3, "bin" : [ 1, 0, 1, 0, 1, 0 ] }
{ "dec" : 5, "bin" : [ 0, 0, 0, 1, 1, 1 ] }