次のようなコレクションにドキュメントがあります。
{
container : {
P39433: 2,
P30213: 4
}
}
値 'P39433' および 'P30213' は、プログラムで動的に生成されます。mongo に対してドット表記を使用して次のクエリを直接実行すると、目的の結果が得られます
db.collection.findOne({ "container.P00000" : { $exists : false } })
書類を取り戻します。つまり、フィールドが存在しない場合にのみドキュメントを取得したいのです。
P00000
私の質問は、値が変数に含まれている場合、ネイティブ ドライバーを使用してノードでそのクエリを実行するにはどうすればよいかということです。
私の通常の解決策は、以下のようにクエリを構成することですが、結果は返されません。
var fieldName = 'P00000';
var dynObj = {};
dynObj[fieldName] = { $exists : false };
db.collection.findOne( { "container" : dynObj });