null値の可能性がある場合、MongoDBでORDERBYを使用するにはどうすればよいですか?
null値もある場合は、sort()を使用してORDERBYを実装します。
注 − MongoDB v3.2以降、$orderby演算子はmongoシェルで非推奨になりました。代わりにcursor.sort()を使用してください。
ドキュメントを使用してコレクションを作成しましょう-
> db.demo530.insertOne({"Name":"Chris"});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b2990ef4dcbee04fbbbec")
}
> db.demo530.insertOne({"Name":null});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b2991ef4dcbee04fbbbed")
}
> db.demo530.insertOne({"Name":"David"});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b2992ef4dcbee04fbbbee")
}
> db.demo530.insertOne({"Name":"Adam"});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b2995ef4dcbee04fbbbef")
}
> db.demo530.insertOne({"Name":null});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b2999ef4dcbee04fbbbf0")
}
> db.demo530.insertOne({"Name":"Carol"});{
"acknowledged" : true,
"insertedId" : ObjectId("5e8b299eef4dcbee04fbbbf1")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo530.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8b2990ef4dcbee04fbbbec"), "Name" : "Chris" }
{ "_id" : ObjectId("5e8b2991ef4dcbee04fbbbed"), "Name" : null }
{ "_id" : ObjectId("5e8b2992ef4dcbee04fbbbee"), "Name" : "David" }
{ "_id" : ObjectId("5e8b2995ef4dcbee04fbbbef"), "Name" : "Adam" }
{ "_id" : ObjectId("5e8b2999ef4dcbee04fbbbf0"), "Name" : null }
{ "_id" : ObjectId("5e8b299eef4dcbee04fbbbf1"), "Name" : "Carol" } 以下は、sort()-
を使用してnull値がある場合に、MongoDBにORDERBYを実装するためのクエリです。> db.demo530.aggregate([
... {$match: {"Name": {$exists: true}}}
... ,
... {$sort: { "Name": 1}}
... ]); これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8b2991ef4dcbee04fbbbed"), "Name" : null }
{ "_id" : ObjectId("5e8b2999ef4dcbee04fbbbf0"), "Name" : null }
{ "_id" : ObjectId("5e8b2995ef4dcbee04fbbbef"), "Name" : "Adam" }
{ "_id" : ObjectId("5e8b299eef4dcbee04fbbbf1"), "Name" : "Carol" }
{ "_id" : ObjectId("5e8b2990ef4dcbee04fbbbec"), "Name" : "Chris" }
{ "_id" : ObjectId("5e8b2992ef4dcbee04fbbbee"), "Name" : "David" } -
MongoDBコレクションから一意の値を取得するにはどうすればよいですか?
一意の値を取得して重複を無視するには、MongoDBでdistinct()を使用します。個別の()は、単一のコレクション全体で指定されたフィールドの個別の値を検索し、結果を配列で返します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo704.insertOne({"LanguageCode":"hi"}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6ee
-
MongoDBドキュメントのnull値を無視する
MongoDBでnull値を無視するには、 $ ne:nullを使用します 集約()で。ドキュメントを使用してコレクションを作成しましょう- > db.demo722.insertOne( ... { ... id:101, ... details: [ ... { Name:""}, ... { Name: "Da