一意のフィールドをすべて集計して集計パイプライン内でgroupbyを使用し、それを合計文書と比較することができます。
は、我々は次のようなデータを持っていると言う:
[
{
"_id":ObjectId("59dc805cf51b821565695ec8"),
"isDeleted": false,
"salutation": "Mr.",
"firstName": "Kevin",
"lastName" : "Smith"
},{
"_id":ObjectId("59dc80d5f51b821565695ec9"),
"isDeleted": true,
"salutation": "Miss",
"firstName": "Helen",
"lastName" : "Smith"
},{
"_id":ObjectId("59dc80dff51b821565695eca"),
"isDeleted": false,
"salutation": "Mr.",
"firstName": "Joe",
"lastName" : "Bloggs"
}
]
私たちは、その後、次のクエリを実行できます。各フィールドのすべての可能な値を私たちに文書を返します
db.test.aggregate([
{
$group: {
_id : null,
total: {$sum: 1},
isDeleted: {$addToSet: "$isDeleted"},
salutation: {$addToSet: "$salutation"},
firstName: {$addToSet: "$firstName"},
lastName: {$addToSet : "$lastName"},
},
},{
$project: {
isDeleted: { $eq: [ "$total", {$size: "$isDeleted"} ]},
salutation: { $eq: [ "$total", {$size: "$salutation"} ]},
firstName: { $eq: [ "$total", {$size: "$firstName"} ]},
lastName: { $eq: [ "$total", {$size: "$lastName"} ]}
}
}
]);
:
{
"_id" : null,
"isDeleted" : false,
"salutation" : false,
"firstName" : true,
"lastName" : false
}
ポストあなたのコレクションのサンプル文書。 –
[Image Reference](https://ibb.co/hiYpvb) – Hobert
質問の回答方法を追加しましたが、.NETでクエリを作成しました。どのようにドライバを使用するかを確認する必要があります。 –