Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

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" }