web-dev-qa-db-ja.com

MongoDB Aggregation Frameworkで「未定義」の値と一致させる方法は?

レコードフィルタリングを検索するにはどうすればよいですかinundefined値を持つフィールド:

db.records.aggregate({
    $match: {
        myField: "undefined",
    }
})
16
BreakPhreak

一部のフィールドが欠落しているドキュメントを除外する場合は、 $exists 演算子。

これは私のマシンで動作します:

> db.test.drop()
true
> db.test.insert( {'Hello':'World!', 'myField':42})
> db.test.insert( {'Hello again':'World!'})
> db.test.aggregate({'$match':{ 'myField':{'$exists':false} }})
{
        "result" : [
                {
                        "_id" : ObjectId("51b9cd2a6c6a334430ec0c98"),
                        "Hello again" : "World!"
                }
        ],
        "ok" : 1
}

MyFieldが存在するドキュメントは、結果に表示されません。

24
ixe013

$type:6、( mongodbrefereceでフィルタリングします。このタイプは「非推奨」とマークされていることに注意してください):

db.records.aggregate({
    $match: {
        myField: {'$type':6},
    }
})
39
user854301