私は一貫性のない静的なAPIを照会したので、すべての数値インデックス(ただしそのほとんど)のオブジェクトは返されません。さらに、数値インデックスの.count()を使用して、空のドキュメントをdb.collection.insert({})で挿入しています。データベース内の空のドキュメントを見つける
私の質問は次のとおりです。 db.collection.count({})のようなものは、明らかに機能しません。
ありがとうございます!
私は一貫性のない静的なAPIを照会したので、すべての数値インデックス(ただしそのほとんど)のオブジェクトは返されません。さらに、数値インデックスの.count()を使用して、空のドキュメントをdb.collection.insert({})で挿入しています。データベース内の空のドキュメントを見つける
私の質問は次のとおりです。 db.collection.count({})のようなものは、明らかに機能しません。
ありがとうございます!
$exists
で必須フィールドが存在するかどうかをチェックして、空のドキュメントを返すことができます。
db.collection.count({"fieldName": { $exists: false }})
$ where演算子を使用します。 Javascript式は、単一のキーを含むドキュメントのみを返します。 MongoDBの3.4以降の場合
db.collection.find({ "$where": "return Object.keys(this).length == 1" }).count()
(単一キーは文書「_id」キーということ)、これらの空のドキュメント/ nullのフィールドの数を取得するには、次の集計パイプラインの実行を検討:
db.collection.aggregate([
{ "$project": {
"hashmaps": { "$objectToArray": "$$ROOT" }
} },
{ "$project": {
"keys": "$hashmaps.k"
} },
{ "$group": {
"_id": null,
"count": { "$sum": {
"$cond": [
{
"$eq":[
{
"$ifNull": [
{ "$arrayElemAt": ["$keys", 1] },
0
]
},
0
]
},
1,
0
]
} }
} }
]);