Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

null 또는 누락된 필드에 대한 쿼리

이 페이지의 내용

  • 동등성 필터
  • 비동등성 필터
  • 유형 확인
  • 존재 확인
  • MongoDB Atlas를 사용하여 null 또는 누락된 필드 쿼리

다음 메서드를 사용하여 MongoDB에서 null 또는 누락된 필드를 쿼리할 수 있습니다.

  • 프로그래밍 언어의 드라이버입니다.

  • MongoDB Atlas UI입니다. 자세한 정보는 MongoDB Atlas를 사용하여 null 또는 누락된 필드 쿼리를에서 확인 가능합니다.

  • MongoDB Compass


오른쪽 상단의 언어 선택 드롭다운 메뉴를 사용하여 다음 예시의 언어를 설정하거나 MongoDB Compass를 선택합니다.


MongoDB의 다양한 쿼리 연산자는 null 값을 각각 다르게 처리합니다.

이 페이지에서는mongosh 에서 db.collection.find() 메서드를 사용하여 null 값을 쿼리 하는 작업의 예를 제공합니다

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 MongoDB Compass를 사용하여 null 값을 쿼리하는 작업의 예를 제공합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 null mongoc_collection_find_with_opts 를 사용하여 값을 쿼리 하는 작업의 예를 제공합니다. . .. include:: /includes/driver-examples/examples-intro.rst

이 페이지에서는 MongoDB C# 드라이버MongoCollection.Find() 메서드를 사용하여 null 값을 쿼리하는 작업의 예를 제공합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 MongoDB Go 드라이버에서 Collection.Find 메서드를 사용하여 null 값에 대해 쿼리하는 작업의 예시를 보여줍니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 com.mongodb.reactivestreams 를 사용하여 값을 쿼리 하는 작업의 예를 제공합니다. 클라이언트.MongoCollection.find MongoDB null Java Reactive Streams 드라이버 의 메서드 .

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 MongoDB Java 동기식 드라이버에서 com.mongodb.client.MongoCollection.find 메서드를 사용하여 null 값을 쿼리하는 작업의 예시를 제공합니다.

이 드라이버는 필터 문서를 쉽게 만들 수 있도록 com.mongodb.client.model.Filters 헬퍼 메서드를 제공합니다. 이 페이지의 예시에서는 이러한 방법을 사용하여 필터 문서를 생성합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 null MongoCollection.find() 메서드 를 사용하여 값을 쿼리 하는 작업의 예를 제공합니다. 메서드를 MongoDB 코틀린 (Kotlin) 루틴 드라이버.

이 드라이버는 필터 문서를 쉽게 만들 수 있도록 com.mongodb.client.model.Filters 헬퍼 메서드를 제공합니다. 이 페이지의 예시에서는 이러한 방법을 사용하여 필터 문서를 생성합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 Motor 드라이버에서 motor.motor_asyncio.AsyncIOMotorCollection.find 메서드를 사용하여 null 값에 대해 쿼리하는 작업의 예시를 보여줍니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 Collection.find ()를 사용하여 null 값을 쿼리하는 작업의 예를 제공합니다. MongoDB Node.js 드라이버의 메서드.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 null MongoDB PHP 라이브러리 에서 메서드를 사용하여 값을 MongoDB\\Collection::find() 쿼리 하는 작업의 예를 제공합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 PyMongo Python 드라이버에서 메서드를 pymongo.collection.Collection.find 사용하여 값을 쿼리하는 작업의 예시를 제공합니다.null

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 null MongoDB Ruby 드라이버 에서 Mongo::Collection#find() 메서드를사용하여 값을 쿼리 하는 작업의 예를 제공합니다.

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

이 페이지에서는 null 컬렉션 .find() 메서드 를 사용하여 값을 쿼리 하는 작업의 예를 제공합니다. MongoDB Scala 드라이버 의 메서드 .

이 페이지의 예시에서는 inventory 컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory 컬렉션을 만듭니다:

중요

MongoDB C 운전자 와 함께 BCON_NULL 를 사용하여 MongoDB 에서 null 또는 누락된 필드를 쿼리 합니다.

중요

MongoDB C# 드라이버를 사용하여 MongoDB에서 null 또는 누락된 필드를 쿼리하려면 BsonNull.Value을(를) 사용하세요.

중요

MongoDB에서 null 또는 누락된 필드를 쿼리하려면 MongoDB Go 드라이버와 함께 nil을 사용하세요.

중요

코틀린 (Kotlin) 루틴 운전자 와 함께 null 를 사용하여 MongoDB 에서 null 또는 누락된 필드를 쿼리 합니다.

중요

None을(를) Motor 드라이버와 함께 사용하여 MongoDB에서 null 또는 누락된 필드를 쿼리할 수 있습니다.

중요

MongoDB에서 null 또는 누락된 필드를 쿼리하려면 PyMongo Python 드라이버와 함께 None을(를) 사용하세요.

중요

MongoDB Ruby 운전자 와 함께 nil 를 사용하여 MongoDB 에서 null 또는 누락된 필드를 쿼리 합니다.

중요

MongoDB Scala 운전자 와 함께 BsonNull() 를 사용하여 MongoDB 에서 null 또는 누락된 필드를 쿼리 합니다.

db.inventory.insertMany([
{ _id: 1, item: null },
{ _id: 2 }
])
[
{ "_id": 1, "item": null },
{ "_id": 2 }
]

MongoDB Compass에서 문서를 삽입하는 방법은 문서 삽입하기를 참조하세요.

mongoc_collection_t *collection;
mongoc_bulk_operation_t *bulk;
bson_t *doc;
bool r;
bson_error_t error;
bson_t reply;
collection = mongoc_database_get_collection (db, "inventory");
bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
doc = BCON_NEW (
"_id", BCON_INT64 (1),
"item", BCON_NULL);
r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error);
bson_destroy (doc);
if (!r) {
MONGOC_ERROR ("%s\n", error.message);
goto done;
}
doc = BCON_NEW ("_id", BCON_INT64 (2));
r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error);
bson_destroy (doc);
if (!r) {
MONGOC_ERROR ("%s\n", error.message);
goto done;
}
/* "reply" is initialized on success or error */
r = (bool) mongoc_bulk_operation_execute (bulk, &reply, &error);
if (!r) {
MONGOC_ERROR ("%s\n", error.message);
}
var documents = new[]
{
new BsonDocument { { "_id", 1 }, { "item", BsonNull.Value } },
new BsonDocument { { "_id", 2 } }
};
collection.InsertMany(documents);
docs := []interface{}{
bson.D{
{"_id", 1},
{"item", nil},
},
bson.D{
{"_id", 2},
},
}
result, err := coll.InsertMany(context.TODO(), docs)
Publisher<Success> insertManyPublisher = collection.insertMany(asList(
Document.parse("{'_id': 1, 'item': null}"),
Document.parse("{'_id': 2}")
));
collection.insertMany(asList(
Document.parse("{'_id': 1, 'item': null}"),
Document.parse("{'_id': 2}")
));
collection.insertMany(
listOf(
Document("_id", 1)
.append("item", null),
Document("_id", 2)
)
)
await db.inventory.insert_many([{"_id": 1, "item": None}, {"_id": 2}])
await db.collection('inventory').insertMany([{ _id: 1, item: null }, { _id: 2 }]);
$insertManyResult = $db->inventory->insertMany([
['_id' => 1, 'item' => null],
['_id' => 2],
]);
db.inventory.insert_many([{"_id": 1, "item": None}, {"_id": 2}])
client[:inventory].insert_many([{ _id: 1, item: nil },
{ _id: 2 }])
collection.insertMany(Seq(
Document("""{"_id": 1, "item": null}"""),
Document("""{"_id": 2}""")
)).execute()

{ item : null } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item : null } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item, BCON_NULL } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

FilterDefinitionBuilder.Eq() Eq("item", BsonNull.Value) 를 사용하는 쿼리 메서드는 item 값이 인 필드 를 포함 하거나 null item 필드 를 포함하지 않는 문서와 일치합니다.

item => nil 쿼리는 값이 nilitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

eq("item", null) 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

eq("item", null) 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

eq("item", null) 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item : None } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item : null } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

[ item => undef ] 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item : None } 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

{ item => nil } 쿼리는 값이 nilitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

equal("item", BsonNull) 쿼리는 값이 nullitem 필드를 포함하거나 item 필드를 포함하지 않는 문서와 일치합니다.

db.inventory.find( { item: null } )

다음 쿼리 필터하다 문서 를 쿼리 표시줄 에 복사하고 Find 를 클릭합니다.

{ item: null }
null 값 또는 누락된 필드 쿼리
mongoc_collection_t *collection;
bson_t *filter;
mongoc_cursor_t *cursor;
collection = mongoc_database_get_collection (db, "inventory");
filter = BCON_NEW ("item", BCON_NULL);
cursor = mongoc_collection_find_with_opts (collection, filter, NULL, NULL);
var filter = Builders<BsonDocument>.Filter.Eq("item", BsonNull.Value);
var result = collection.Find(filter).ToList();
cursor, err := coll.Find(
context.TODO(),
bson.D{
{"item", nil},
})
FindPublisher<Document> findPublisher = collection.find(eq("item", null));
FindIterable<Document> findIterable = collection.find(eq("item", null));
val findFlow = collection
.find(eq("item", null))
cursor = db.inventory.find({"item": None})
const cursor = db.collection('inventory').find({
item: null
});
$cursor = $db->inventory->find(['item' => null]);
cursor = db.inventory.find({"item": None})
client[:inventory].find(item: nil)
var findObservable = collection.find(equal("item", BsonNull()))

쿼리는 컬렉션에 있는 두 문서를 모두 반환합니다.

존재하지만 null이 아닌 필드를 쿼리하려면 { $ne : null } 필터를 사용합니다. { item : { $ne : null } } 쿼리는 item 필드가 존재 하고 null이 아닌 값을 가진 문서와 일치합니다.

db.inventory.find( { item: { $ne : null } } )
{ item: { $ne : null } }
filter = BCON_NEW ("item", BCON_NULL);
cursor = mongoc_collection_find_with_opts (collection, filter, NULL, NULL);
var filter = Builders<BsonDocument>.Filter.Ne("item", BsonNull.Value);
var result = collection.Find(filter).ToList();
cursor, err := coll.Find(
context.TODO(),
bson.D{
{"item", bson.D{"$ne": nil}},
})
db.inventory.find( { item: { $ne : null} } )
collection.find(ne("item", null));
collection.find(ne("item", null))
cursor = db.inventory.find( { "item": { "$ne": None } } )
const cursor = db.collection('inventory')
.find({ item: { $ne : null }
});
$cursor = $db->inventory->find(['item' => ['$ne' => null ]]);
cursor = db.inventory.find( { "item": { "$ne": None } } )
client[:inventory].find(item: { '$ne' => nil })
collection.find($ne("item", null));

{ item : { $type: 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

{ item : { $type: 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

{ item, { $type, BCON_NULL } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

FilterDefinitionBuilder.Type() 메서드를 사용하는 Type("item", BsonType.Null) 쿼리는 값이 오직 nullitem 필드가 포함된 문서와 일치합니다. item 필드의 값은 BSON 유형 Null(BSON 유형 10)입니다.

다음 쿼리는 item 값이 BSON 유형 Null(BSON 유형 10)인 필드가 포함된 문서 일치합니다.

type("item", BsonType.NULL) 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

type("item", BsonType.NULL) 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

type("item", BsonType.NULL) 쿼리는 값이 nullitem 필드를 포함하는 문서 일치시킵니다. 즉, item 필드의 값은 BSON 타입 Null (BSON 타입 10)입니다.

type("item", BsonType.NULL) 쿼리 는 값이 nullitem 필드 가 포함된 문서 일치합니다. 즉, item 필드 의 값이 BSON 유형 Null (BSON 유형 10)입니다.

{ item : { $type: 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

{ item : { $type: 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

[ item => [ $type => 10 ] ] 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

{ item : { $type: 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

{ item => { $type => 10 } } 쿼리는 item 필드의 값이 null인, 즉 item 필드의 값이 BSON Type Null (BSON 유형 10)인 문서만 일치합니다.

db.inventory.find( { item : { $type: 10 } } )

다음 쿼리 필터 문서를 쿼리 표시줄에 복사하고 Find를 클릭합니다.

{ item : { $type: 10 } }
null 유형 찾기
mongoc_collection_t *collection;
bson_t *filter;
mongoc_cursor_t *cursor;
collection = mongoc_database_get_collection (db, "inventory");
filter = BCON_NEW (
"item", "{",
"$type", BCON_INT64 (10),
"}");
cursor = mongoc_collection_find_with_opts (collection, filter, NULL, NULL);
var filter = Builders<BsonDocument>.Filter.Type("item", BsonType.Null);
var result = collection.Find(filter).ToList();
cursor, err := coll.Find(
context.TODO(),
bson.D{
{"item", bson.D{
{"$type", 10},
}},
})
findPublisher = collection.find(type("item", BsonType.NULL));
findIterable = collection.find(type("item", BsonType.NULL));
val findFlow = collection
.find(type("item", BsonType.NULL))
cursor = db.inventory.find({"item": {"$type": 10}})
const cursor = db.collection('inventory').find({
item: { $type: 10 }
});
$cursor = $db->inventory->find(['item' => ['$type' => 10]]);
cursor = db.inventory.find({"item": {"$type": 10}})
client[:inventory].find(item: { '$type' => 10 })
findObservable = collection.find(bsonType("item", BsonType.NULL))

쿼리는 item 필드 값이 null에 해당하는 문서만 반환합니다.

다음 예시에서는 필드가 포함되지 않은 문서를 쿼리합니다. [1]

{ item : { $exists: false } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item : { $exists: false } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item, { $exists, BCON_BOOL (false) } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

FilterDefinitionBuilder.Exists() 메서드를 사용하는 Exists("item", false) 쿼리는 item 필드를 포함하지 않는 문서와 일치합니다.

exists("item", false) 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

exists("item", false) 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

exists("item", false) 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item : { $exists: False } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item : { $exists: false } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

[ item => [ $exists => false ] ] 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item : { $exists: False } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

{ item => { $exists => false } } 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

exists("item", exists = false) 쿼리는 item 필드를 포함하지 않는 문서와일치합니다:

db.inventory.find( { item : { $exists: false } } )

다음 쿼리 필터 문서를 쿼리 표시줄에 복사하고 Find를 클릭합니다.

{ item : { $exists: false } }
null 값 쿼리
mongoc_collection_t *collection;
bson_t *filter;
mongoc_cursor_t *cursor;
collection = mongoc_database_get_collection (db, "inventory");
filter = BCON_NEW (
"item", "{",
"$exists", BCON_BOOL (false),
"}");
cursor = mongoc_collection_find_with_opts (collection, filter, NULL, NULL);

다음 메서드를 적절히 호출하여 열려 있는 리소스도 정리해야 합니다.

var filter = Builders<BsonDocument>.Filter.Exists("item", false);
var result = collection.Find(filter).ToList();
cursor, err := coll.Find(
context.TODO(),
bson.D{
{"item", bson.D{
{"$exists", false},
}},
})
findPublisher = collection.find(exists("item", false));
findIterable = collection.find(exists("item", false));
val findFlow = collection
.find(exists("item", false))
cursor = db.inventory.find({"item": {"$exists": False}})
const cursor = db.collection('inventory').find({
item: { $exists: false }
});
$cursor = $db->inventory->find(['item' => ['$exists' => false]]);
cursor = db.inventory.find({"item": {"$exists": False}})
client[:inventory].find(item: { '$exists' => false })
findObservable = collection.find(exists("item", exists = false))

쿼리는 item 필드가 포함되지 않은 문서만 반환합니다.

다음도 참조하세요.

$type$exists 연산자에 대한 참조 문서입니다.

[1] 사용자는 더 이상 쿼리 필터 $type: 0$exists:false의 동의어로 사용할 수 없습니다. null 또는 누락된 필드를 쿼리하려면 null 또는 누락된 필드 쿼리를 확인합니다.

이 섹션의 예시에서는 샘플 교육 데이터세트를 사용합니다. MongoDB Atlas 배포에 샘플 데이터세트를 로드하는 방법을 알아보려면 샘플 데이터 로드를 참조하세요.

null 또는 누락된 필드를 MongoDB Atlas에서 쿼리하려면 다음 단계를 수행합니다.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 아직 표시되지 않은 경우 사이드바에서 Clusters 클릭하세요.

    Clusters(클러스터) 페이지가 표시됩니다.

2
  1. 샘플 데이터가 포함된 클러스터의 경우 Browse Collections 을 클릭합니다.

  2. 왼쪽 탐색 창에서 sample_training 데이터베이스를 선택합니다.

  3. companies 컬렉션을 선택합니다.

3

Insert Document 버튼을 클릭하여 대화 상자를 표시한 다음 Insert를 선택하여 _id 필드만 존재하는 문서를 삽입합니다.

4

null 또는 누락된 값이 포함된 문서를 찾으려면 Filter 필드에서 쿼리 필터 문서를 지정합니다. 쿼리 필터 문서는 쿼리 연산자를 사용하여 검색 조건을 지정합니다.

MongoDB의 다양한 쿼리 연산자는 null 값을 다르게 처리합니다. 쿼리 필터를 적용하려면 다음 각 문서를 Filter 검색창에 복사하고 Apply를 클릭합니다.

다음 쿼리 필터를 사용하여 null 값과 함께 description 필드를 포함하거나 description 필드를 포함하지 않는 문서를 일치시킵니다.

{ description : null }

다음 쿼리 필터를 사용하면 null 값이 있는 description 필드가 포함된 문서만 일치시킬 수 있습니다. 이 필터는 필드 값이 BSON 유형 Null(BSON 유형 10)에 해당해야 한다고 지정합니다.

{ description : { $type: 10 } }

description 필드가 포함되지 않은 문서만 일치시키려면 다음 쿼리 필터를 사용합니다. 이전에 삽입한 문서만 표시됩니다.

{ description : { $exists: false } }

돌아가기

프로젝트 결과