Docs Menu
Docs Home
/ /
Atlas App Services
/ /

MongoDB API 참조

이 페이지의 내용

  • mongodb.admin()
  • admin.getDBNames()
  • mongodb.db()
  • database.getCollectionNames()
  • database.collection()
  • collection.find()
  • Collection.findOne()
  • collection.findOneAndUpdate()
  • collection.findOneAndReplace()
  • collection.findOneAndDelete()
  • collection.insertOne()
  • collection.insertMany()
  • collection.updateOne()
  • collection.updateMany()
  • collection.deleteOne()
  • collection.deleteMany()
  • collection.aggregate()
  • collection.count()
  • collection.distinct()
  • collection.bulkWrite()

연결된 MongoDB 데이터 소스 에서 admin 데이터베이스 의 처리하다 을 가져옵니다. 이를 사용하여 admin.getDBNames()과 같은 MongoDB 관리 명령을 실행 수 있습니다.

const mongodb = context.services.get("mongodb-atlas");
const admin = mongodb.admin();
admin(): AdminDatabase

mongodb.admin() 메서드는 AdminDatabase 객체를 반환합니다. 객체에는 MongoDB database 명령의 하위 집합을 래핑하는 헬퍼 메서드가 포함되어 있습니다. admin.getDBNames() 를 참조하세요.

MongoDB 데이터 소스의 데이터베이스 이름 목록을 반환합니다.

중요

시스템 기능 전용

이 메서드는 시스템 기능에서만 사용할 수 있습니다. 애플리케이션 사용자의 컨텍스트에서 실행되는 함수에서는 이 메서드를 호출할 수 없습니다.

const mongodb = context.services.get("mongodb-atlas");
const admin = mongodb.admin();
const dbNames = admin.getDBNames();
getDBNames(): string[]

admin.getDBNames() 메서드는 각 요소가 데이터 소스의 데이터베이스 이름인 문자열 배열을 반환합니다.

연결된 MongoDB 데이터 소스에 있는 데이터베이스의 핸들을 가져옵니다.

const mongodb = context.services.get("mongodb-atlas");
const db = mongodb.db("myDB");
db(name: string): Database
Parameter
유형
설명
name
문자열
데이터베이스의 이름입니다.

mongodb.db() 메서드는 지정된 데이터베이스의 컬렉션에 액세스할 수 있게 해주는 Database 객체를 반환합니다.

~를 참조하세요. database.collection()

데이터베이스에 있는 컬렉션 이름 목록을 반환합니다.

중요

시스템 기능 전용

이 메서드는 시스템 기능에서만 사용할 수 있습니다. 애플리케이션 사용자의 컨텍스트에서 실행되는 함수에서는 이 메서드를 호출할 수 없습니다.

const mongodb = context.services.get("mongodb-atlas");
const db = mongodb.db("myDB");
const collectionNames = db.getCollectionNames();
getCollectionNames(): string[]

database.getCollectionNames() 메서드는 각 요소가 데이터베이스에 있는 컬렉션의 이름인 문자열 배열을 반환합니다.

database 핸들에서 연결된 MongoDB 데이터 소스의 컬렉션에 대한 핸들을 가져옵니다.

const mongodb = context.services.get("mongodb-atlas");
const db = mongodb.db("myDB");
const collection = db.collection("myCollection");
collection(name: string): Collection
Parameter
유형
설명
name
문자열
컬렉션의 이름입니다.

database.collection() 메서드는 지정된 컬렉션을 쿼리할 수 있는 컬렉션 객체를 반환합니다.

제공된 쿼리 필터와 일치하는 컬렉션 또는 보기의 모든 문서를 찾습니다. 일치하는 문서에 액세스할 수 있게 해주는 커서 객체를 반환합니다.

const query = { "reviews.0": { "$exists": true } };
const projection = { "_id": 0 };
return itemsCollection.find(query, projection)
.sort({ name: 1 })
.toArray()
.then(items => {
console.log(`Successfully found ${items.length} documents.`)
items.forEach(console.log)
return items
})
.catch(err => console.error(`Failed to find documents: ${err}`))
find(
query?: object,
projection?: object,
options?: object
): Cursor
Parameter
유형
설명
query
object

선택 사항.

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

projection
object

선택 사항.

MongoDB가 일치하는 문서에 포함하거나 생략해야 하는 필드를 지정하는 문서입니다.

일치하는 문서의 모든 필드를 반환하려면 이 매개 변수를 생략하거나 빈 프로젝션 문서({})를 지정하세요.

특정 필드와 문서의 _id를 반환하려면 프로젝션 문서에서 해당 필드를 1 값으로 지정하세요.

// Includes the field in returned documents
{ <Field Name>: 1 }

특정 필드를 보류하려면 프로젝션 문서에서 해당 필드를 0 값으로 지정하세요.

// Withholds the field from returned documents
{ <Field Name>: 0 }

참고

포함할 필드 또는 보류할 필드 중 하나만 지정할 수 있으며, 둘 다 지정할 수는 없습니다. 예를 들어 다음 프로젝션은 name 필드를 포함하면서 동시에 address 필드를 보류하기 때문에 유효하지 않습니다:

// Invalid
// Can't simultaneously include and withhold
{ "name": 1, "address": 0 }

_id 필드는 이 규칙의 예외로, 이 필드는 모든 쿼리에서 보류할 수 있습니다:

// Valid
// Can exclude _id while including other fields
{ "_id": 0, "name": 1 }
options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.find() 메서드는 지정된 쿼리와 일치하는 모든 문서를 가리키는 커서 객체를 반환합니다. 다음 커서 메서드를 사용하여 쿼리 결과 집합의 문서를 조작하고 액세스할 수 있습니다.

메서드
설명
cursor.next()

커서 를 반복하고 Promise 를 반환합니다. 커서 의 다음 문서 로 해석됩니다. 커서 가 모두 소진되면 promise는 undefined 로 해결됩니다.

예시

collection.find().next()
.then(doc => console.log("next document", doc))
cursor.toArray()

커서가 소진될 때까지 반복하고 반복된 모든 문서가 포함된 배열로 해결되는 Promise를 반환합니다.

예시

collection.find().toArray()
.then(docs => console.log("all documents", docs))
cursor.skip(amount)

쿼리 결과 세트에서 생략할 일치하는 문서 수를 지정합니다. MongoDB는 지정된 숫자를 건너뛸 때까지 정렬 순서에 따라 결과 세트에서 문서를 생략합니다. 쿼리가 제한도 지정하는 경우 건너뛴 문서는 제한 임계값에 포함되지 않습니다.

참고

cursor.next() 또는 cursor.toArray()를 사용하여 하나 이상의 문서를 검색한 후에는 이 메서드를 호출할 수 없습니다.

cursor.limit(limit)

쿼리 결과 세트에 포함할 문서의 최대 개수입니다. 결과 세트에 지정된 limit보다 많은 문서가 포함되어 있으면 커서는 한도에 다다를 때까지 문서를 순서대로 반환합니다.

참고

cursor.next() 또는 cursor.toArray()를 사용하여 하나 이상의 문서를 검색한 후에는 이 메서드를 호출할 수 없습니다.

cursor.sort(sort)

sort 필터하다 에 따라 결과 설정하다 의 문서를 정렬합니다. 문서 정렬은 정렬할 필드를 하나 이상 지정합니다. 각 필드 의 값은 MongoDB 가 오름차순(1) 또는 내림차순(-1)으로 정렬할지 여부를 나타냅니다. 자세한 내용은 커서.sort를 참조하세요.

참고

cursor.next() 또는 cursor.toArray()를 사용하여 하나 이상의 문서를 검색한 후에는 이 메서드를 호출할 수 없습니다.

예시

다음 정렬 문서는 문서를 먼저 age를 기준으로 가장 높은 항목부터 가장 낮은 항목까지 정렬하도록 지정합니다. 연령별로 정렬한 후에는 각 고유 연령 값에 대해 name을 기준으로 알파벳 순서로 결과 세트를 추가로 정렬해야 합니다.

{ age: -1, name: 1 }

참고

함수에서 커서를 반환할 수 없습니다. 대신 cursor.next() 또는 cursor.toArray()를 사용하여 커서를 평가하고 결과를 반환합니다.

컬렉션 또는 보기에서 단일 문서 를 찾습니다. 여러 문서가 쿼리 와 일치하면 컬렉션 에서 첫 번째로 일치하는 문서 가 반환됩니다.

참고

findOne()은 정렬을 사용할 수 없습니다.

이 문제를 해결하려면 sort()next() 커서 메서드와 함께 find() 를 사용하여 정렬된 컬렉션에서 단일 문서를 반환합니다.

collection.find({}).sort({"<Field Name>": 1}).next()
.then(result => console.log("Found Document: ", result))
const query = { "quantity": { "$gte": 25 } };
const projection = {
"title": 1,
"quantity": 1,
}
return itemsCollection.findOne(query, projection)
.then(result => {
if(result) {
console.log(`Successfully found document: ${result}.`);
} else {
console.log("No document matches the provided query.");
}
return result;
})
.catch(err => console.error(`Failed to find document: ${err}`));
findOne(
query?: object,
projection?: object,
options?: object
): Promise<object | null>
Parameter
유형
설명
query
object

선택 사항.

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

projection
object

선택 사항.

MongoDB가 일치하는 문서에 포함하거나 생략해야 하는 필드를 지정하는 문서입니다.

일치하는 문서의 모든 필드를 반환하려면 이 매개 변수를 생략하거나 빈 프로젝션 문서({})를 지정하세요.

특정 필드와 문서의 _id를 반환하려면 프로젝션 문서에서 해당 필드를 1 값으로 지정하세요.

// Includes the field in returned documents
{ <Field Name>: 1 }

특정 필드를 보류하려면 프로젝션 문서에서 해당 필드를 0 값으로 지정하세요.

// Withholds the field from returned documents
{ <Field Name>: 0 }

참고

포함할 필드 또는 보류할 필드 중 하나만 지정할 수 있으며, 둘 다 지정할 수는 없습니다. 예를 들어 다음 프로젝션은 name 필드를 포함하면서 동시에 address 필드를 보류하기 때문에 유효하지 않습니다:

// Invalid
// Can't simultaneously include and withhold
{ "name": 1, "address": 0 }

_id 필드는 이 규칙의 예외로, 이 필드는 모든 쿼리에서 보류할 수 있습니다:

// Valid
// Can exclude _id while including other fields
{ "_id": 0, "name": 1 }
options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.findOne() 메서드는 Promise 를 반환합니다. 쿼리 와 일치하는 컬렉션 의 첫 번째 문서 로 해석됩니다. 지정된 쿼리 와 일치하는 문서가 없으면 promise는 null 로 해결됩니다.

Promise<object | null>

컬렉션이나 뷰의 단일 문서를 업데이트하고 업데이트 전 또는 업데이트 후 형식으로 문서를 반환합니다.

collection.updateOne() 과 달리 이 작업을 사용하면 동일한 명령으로 문서를 원자적으로 찾고, 수정하고, 반환할 수 있습니다. 이렇게 하면 별도의 찾기 작업과 업데이트 작업 사이에 다른 업데이트 작업으로 인해 문서가 변경될 위험을 방지할 수 있습니다.

// Find the document that describes "lego"
const query = { "name": "lego" };
// Set some fields in that document
const update = {
"$set": {
"name": "blocks",
"price": 20.99,
"category": "toys"
}
};
// Return the updated document instead of the original document
const options = { returnNewDocument: true };
return itemsCollection.findOneAndUpdate(query, update, options)
.then(updatedDocument => {
if(updatedDocument) {
console.log(`Successfully updated document: ${updatedDocument}.`)
} else {
console.log("No document matches the provided query.")
}
return updatedDocument
})
.catch(err => console.error(`Failed to find and update document: ${err}`))
findOneAndUpdate(
query: object,
update: object,
options?: object
): Promise<object | null>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

update
object

MongoDB 업데이트 연산자 를 사용하여 수행할 수정 사항을 지정하는 업데이트 문서 입니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.upsert
boolean

선택 사항 기본값: false.

true인 경우, 쿼리가 컬렉션의 기존 문서와 일치하지 않을 때 MongoDB가 쿼리와 일치하는 새 문서를 삽입해야 함을 나타내는 부울입니다.

options.sort
boolean

선택 사항.

쿼리 정렬 순서를 지정합니다. 정렬할 필드를 하나 이상 지정할 수 있으며, 각 필드 값은 MongoDB가 오름차순(1) 또는 내림차순(-1)으로 정렬할지 여부를 나타냅니다.

예시

다음 정렬 문서는 문서를 먼저 age를 기준으로 가장 높은 항목부터 가장 낮은 항목까지 정렬하도록 지정합니다. 연령별로 정렬한 후에는 각 고유 연령 값에 대해 name을 기준으로 알파벳 순서로 결과 세트를 추가로 정렬해야 합니다.

{ age: -1, name: 1 }
options.projection
boolean

MongoDB가 일치하는 문서에 포함하거나 생략해야 하는 필드를 지정하는 문서입니다.

일치하는 문서의 모든 필드를 반환하려면 이 매개 변수를 생략하거나 빈 프로젝션 문서({})를 지정하세요.

특정 필드와 문서의 _id를 반환하려면 프로젝션 문서에서 해당 필드를 1 값으로 지정하세요.

// Includes the field in returned documents
{ <Field Name>: 1 }

특정 필드를 보류하려면 프로젝션 문서에서 해당 필드를 0 값으로 지정하세요.

// Withholds the field from returned documents
{ <Field Name>: 0 }

참고

포함할 필드 또는 보류할 필드 중 하나만 지정할 수 있으며, 둘 다 지정할 수는 없습니다. 예를 들어 다음 프로젝션은 name 필드를 포함하면서 동시에 address 필드를 보류하기 때문에 유효하지 않습니다:

// Invalid
// Can't simultaneously include and withhold
{ "name": 1, "address": 0 }

_id 필드는 이 규칙의 예외로, 이 필드는 모든 쿼리에서 보류할 수 있습니다:

// Valid
// Can exclude _id while including other fields
{ "_id": 0, "name": 1 }
options.returnNewDocument
boolean

선택 사항 기본값: false.

true인 경우 메서드는 수정된 문서를 업데이트 전 원본 양식 대신 업데이트된 형식으로 반환합니다.

options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.findOneAndUpdate() 메서드는 Promise 를 반환합니다. 쿼리가 덮어쓴 단일 문서로 확인됩니다. 지정된 쿼리와 일치하는 문서가 없는 경우 promise는 null 로 해결됩니다.

Promise<object | null>

참고

options.returnNewDocument 값을 설정하여 문서의 대체 전 버전을 반환할지 대체 후 버전을 반환할지 여부를 지정할 수 있습니다. 기본적으로 returnNewDocumentfalse이며, 이는 promise가 문서가 업데이트 전 버전으로 해결되어야 함을 나타냅니다.

컬렉션이나 뷰의 단일 문서를 덮어쓰고 대체 전 또는 대체 후 형식으로 문서를 반환합니다.

collection.updateOne() 과 달리 이 작업을 사용하면 동일한 명령으로 문서를 원자적으로 찾고, 수정하고, 반환할 수 있습니다. 이렇게 하면 별도의 찾기 작업과 업데이트 작업 사이에 다른 업데이트 작업으로 인해 문서가 변경될 위험을 방지할 수 있습니다.

// Find the document that describes "lego"
const query = { "name": "lego" };
// Replace it with a new document
const replacement = {
"name": "blocks",
"price": 20.99,
"category": "toys"
};
// Return the original document as it was before being replaced
const options = { "returnNewDocument": false };
return itemsCollection.findOneAndReplace(query, replacement, options)
.then(replacedDocument => {
if(replacedDocument) {
console.log(`Successfully replaced the following document: ${replacedDocument}.`)
} else {
console.log("No document matches the provided query.")
}
return updatedDocument
})
.catch(err => console.error(`Failed to find and replace document: ${err}`))
findOneAndReplace(
query: object,
replacement: object,
options?: object
): Promise<object | null>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

replacement
object

일치하는 문서를 대체할 문서입니다. 대체 문서에는 MongoDB 업데이트 연산자를 포함할 수 없습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.upsert
boolean

선택 사항 기본값: false.

true인 경우, 쿼리가 컬렉션의 기존 문서와 일치하지 않을 때 MongoDB가 쿼리와 일치하는 새 문서를 삽입해야 함을 나타내는 부울입니다.

options.sort
boolean

선택 사항.

쿼리 정렬 순서를 지정합니다. 정렬할 필드를 하나 이상 지정할 수 있으며, 각 필드 값은 MongoDB가 오름차순(1) 또는 내림차순(-1)으로 정렬할지 여부를 나타냅니다.

예시

다음 정렬 문서는 문서를 먼저 age를 기준으로 가장 높은 항목부터 가장 낮은 항목까지 정렬하도록 지정합니다. 연령별로 정렬한 후에는 각 고유 연령 값에 대해 name을 기준으로 알파벳 순서로 결과 세트를 추가로 정렬해야 합니다.

{ age: -1, name: 1 }
options.projection
boolean

MongoDB가 일치하는 문서에 포함하거나 생략해야 하는 필드를 지정하는 문서입니다.

일치하는 문서의 모든 필드를 반환하려면 이 매개 변수를 생략하거나 빈 프로젝션 문서({})를 지정하세요.

특정 필드와 문서의 _id를 반환하려면 프로젝션 문서에서 해당 필드를 1 값으로 지정하세요.

// Includes the field in returned documents
{ <Field Name>: 1 }

특정 필드를 보류하려면 프로젝션 문서에서 해당 필드를 0 값으로 지정하세요.

// Withholds the field from returned documents
{ <Field Name>: 0 }

참고

포함할 필드 또는 보류할 필드 중 하나만 지정할 수 있으며, 둘 다 지정할 수는 없습니다. 예를 들어 다음 프로젝션은 name 필드를 포함하면서 동시에 address 필드를 보류하기 때문에 유효하지 않습니다:

// Invalid
// Can't simultaneously include and withhold
{ "name": 1, "address": 0 }

_id 필드는 이 규칙의 예외로, 이 필드는 모든 쿼리에서 보류할 수 있습니다:

// Valid
// Can exclude _id while including other fields
{ "_id": 0, "name": 1 }
options.returnNewDocument
boolean

선택 사항 기본값: false.

true인 경우 메서드는 수정된 문서를 업데이트 전 원본 양식 대신 업데이트된 형식으로 반환합니다.

options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.findOneAndReplace() 메서드는 Promise 를 반환합니다. 쿼리가 덮어쓴 단일 문서로 확인됩니다. 지정된 쿼리와 일치하는 문서가 없는 경우 promise는 null 로 해결됩니다.

Promise<object | null>

참고

options.returnNewDocument 값을 설정하여 문서의 대체 전 버전을 반환할지 대체 후 버전을 반환할지 여부를 지정할 수 있습니다. 기본적으로 returnNewDocumentfalse이며, 이는 promise가 문서가 업데이트 전 버전으로 해결되어야 함을 나타냅니다.

컬렉션에서 단일 문서를 제거하고 삭제된 문서를 삭제되기 직전의 상태로 반환합니다.

collection.updateOne() 과 달리 이 작업을 사용하면 동일한 명령으로 문서를 원자적으로 찾고, 수정하고, 반환할 수 있습니다. 이렇게 하면 별도의 찾기 작업과 업데이트 작업 사이에 다른 업데이트 작업으로 인해 문서가 변경될 위험을 방지할 수 있습니다.

// Find the first document that has a quantity greater than 25
const query = { "quantity": { "$gte": 25 } };
// Sort the documents in order of descending quantity before
// deleting the first one.
const options = {
"sort": { "quantity": -1 }
}
return itemsCollection.findOneAndDelete(query, options)
.then(deletedDocument => {
if(deletedDocument) {
console.log(`Successfully deleted document that had the form: ${deletedDocument}.`)
} else {
console.log("No document matches the provided query.")
}
return deletedDocument
})
.catch(err => console.error(`Failed to find and delete document: ${err}`))
findOneAndDelete(
query: object,
options?: object
): Promise<object | null>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.sort
boolean

선택 사항.

쿼리 정렬 순서를 지정합니다. 정렬할 필드를 하나 이상 지정할 수 있으며, 각 필드 값은 MongoDB가 오름차순(1) 또는 내림차순(-1)으로 정렬할지 여부를 나타냅니다.

예시

다음 정렬 문서는 문서를 먼저 age를 기준으로 가장 높은 항목부터 가장 낮은 항목까지 정렬하도록 지정합니다. 연령별로 정렬한 후에는 각 고유 연령 값에 대해 name을 기준으로 알파벳 순서로 결과 세트를 추가로 정렬해야 합니다.

{ age: -1, name: 1 }
options.projection
boolean

MongoDB가 일치하는 문서에 포함하거나 생략해야 하는 필드를 지정하는 문서입니다.

일치하는 문서의 모든 필드를 반환하려면 이 매개 변수를 생략하거나 빈 프로젝션 문서({})를 지정하세요.

특정 필드와 문서의 _id를 반환하려면 프로젝션 문서에서 해당 필드를 1 값으로 지정하세요.

// Includes the field in returned documents
{ <Field Name>: 1 }

특정 필드를 보류하려면 프로젝션 문서에서 해당 필드를 0 값으로 지정하세요.

// Withholds the field from returned documents
{ <Field Name>: 0 }

참고

포함할 필드 또는 보류할 필드 중 하나만 지정할 수 있으며, 둘 다 지정할 수는 없습니다. 예를 들어 다음 프로젝션은 name 필드를 포함하면서 동시에 address 필드를 보류하기 때문에 유효하지 않습니다:

// Invalid
// Can't simultaneously include and withhold
{ "name": 1, "address": 0 }

_id 필드는 이 규칙의 예외로, 이 필드는 모든 쿼리에서 보류할 수 있습니다:

// Valid
// Can exclude _id while including other fields
{ "_id": 0, "name": 1 }
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.findOneAndDelete() 메서드는 Promise 를 반환합니다. 쿼리가 삭제한 단일 문서로 확인됩니다. 지정된 쿼리와 일치하는 문서가 없는 경우 promise는 null 로 해결됩니다.

Promise<object | null>

단일 문서를 컬렉션에 삽입하고 삽입된 문서의 _id를 반환합니다.

const newItem = {
"name": "Plastic Bricks",
"quantity": 10,
"category": "toys",
"reviews": [{ "username": "legolover", "comment": "These are awesome!" }]
};
itemsCollection.insertOne(newItem)
.then(result => console.log(`Successfully inserted item with _id: ${result.insertedId}`))
.catch(err => console.error(`Failed to insert item: ${err}`))
insertOne(document: object): Promise<object>
Parameter
유형
설명
document
object
컬렉션에 삽입할 문서입니다.

collection.insertOne() 메서드는 삽입 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.insertedId
string
삽입 작업으로 컬렉션에 추가한 문서의 _id 값입니다.

컬렉션에 하나 이상의 문서를 삽입하고 삽입한 각 문서에 대한 _id 값이 포함된 목록을 반환합니다.

const doc1 = { "name": "basketball", "category": "sports", "quantity": 20, "reviews": [] };
const doc2 = { "name": "football", "category": "sports", "quantity": 30, "reviews": [] };
return itemsCollection.insertMany([doc1, doc2])
.then(result => {
console.log(`Successfully inserted ${result.insertedIds.length} items!`);
return result
})
.catch(err => console.error(`Failed to insert documents: ${err}`))
insertMany(
document: object,
options?: { ordered?: boolean },
): Promise<object>
Parameter
유형
설명
documents
object
컬렉션에 삽입할 문서의 배열입니다.
options
object
추가 구성 옵션을 지정하는 객체입니다.
options.ordered
boolean
선택 사항. mongod 인스턴스가 정렬된 삽입을 수행할지, 정렬되지 않은 삽입을 수행할지 여부를 지정하는 부울입니다. 기본값은 true 입니다.

collection.insertMany() 메서드는 삽입 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.insertedIds: Array<ObjectID>
string
삽입 작업이 메서드에 전달된 순서대로 컬렉션에 추가한 모든 문서의 _id 값을 포함하는 배열입니다.

컬렉션의 단일 문서를 업데이트하고 작업에 대한 메타데이터를 반환합니다.

const query = { "name": "football" };
const update = {
"$push": {
"reviews": {
"username": "tombradyfan",
"comment": "I love football!!!"
}
}
};
const options = { "upsert": false };
itemsCollection.updateOne(query, update, options)
.then(result => {
const { matchedCount, modifiedCount } = result;
if(matchedCount && modifiedCount) {
console.log(`Successfully added a new review.`)
}
})
.catch(err => console.error(`Failed to add review: ${err}`))
updateOne(
query: object,
update: object,
options?: object
): Promise<object>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

update
object

MongoDB 업데이트 연산자 를 사용하여 수행할 수정 사항을 지정하는 업데이트 문서 입니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.upsert
boolean

선택 사항 기본값: false.

true인 경우, 쿼리가 컬렉션의 기존 문서와 일치하지 않을 때 MongoDB가 쿼리와 일치하는 새 문서를 삽입해야 함을 나타내는 부울입니다.

options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.updateOne() 메서드는 업데이트 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.matchedCount
number
제공된 쿼리와 일치하는 컬렉션 내 문서 수입니다.
result.modifiedCount
number
업데이트 작업에 의해 수정된 컬렉션 내 문서 수입니다.
result.upsertedId
string
업서트 작업에 의해 삽입된 문서의 _id 값입니다. 이 값은 upsert 옵션이 활성화되어 있고 업데이트 쿼리가 어떤 문서와도 일치하지 않는 경우에만 존재합니다.

컬렉션에 있는 하나 이상의 문서를 업데이트하고 작업에 대한 메타데이터를 반환합니다.

const query = {};
const update = { "$mul": { "quantity": 10 } };
const options = { "upsert": false }
return itemsCollection.updateMany(query, update, options)
.then(result => {
const { matchedCount, modifiedCount } = result;
console.log(`Successfully matched ${matchedCount} and modified ${modifiedCount} items.`)
return result
})
.catch(err => console.error(`Failed to update items: ${err}`))
updateMany(
query: object,
update: object,
options?: object
): Promise<object>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

update
object

MongoDB 업데이트 연산자 를 사용하여 수행할 수정 사항을 지정하는 업데이트 문서 입니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.upsert
boolean

선택 사항 기본값: false.

true인 경우, 쿼리가 컬렉션의 기존 문서와 일치하지 않을 때 MongoDB가 쿼리와 일치하는 새 문서를 삽입해야 함을 나타내는 부울입니다.

options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.updateMany() 메서드는 업데이트 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.matchedCount
number
제공된 쿼리와 일치하는 컬렉션 내 문서 수입니다.
result.modifiedCount
number
업데이트 작업에 의해 수정된 컬렉션 내 문서 수입니다.
result.upsertedId
string
업서트 작업에 의해 삽입된 문서의 _id 값입니다. 이 값은 upsert 옵션이 활성화되어 있고 업데이트 쿼리가 어떤 문서와도 일치하지 않는 경우에만 존재합니다.

컬렉션에서 단일 문서를 제거합니다.

const query = { "name": "lego" };
itemsCollection.deleteOne(query)
.then(result => console.log(`Deleted ${result.deletedCount} item.`))
.catch(err => console.error(`Delete failed with error: ${err}`))
deleteOne(
query: object,
options?: object
): Promise<object>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.deleteOne() 메서드는 삭제 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.deletedCount
number
컬렉션에서 삭제 조작에 의해 삭제된 문서 수입니다.

컬렉션에서 하나 이상의 문서를 제거합니다.

const query = { "reviews": { "$size": 0 } };
itemsCollection.deleteMany(query)
.then(result => console.log(`Deleted ${result.deletedCount} item(s).`))
.catch(err => console.error(`Delete failed with error: ${err}`))
deleteMany(
query: object,
options?: object
): Promise<object>
Parameter
유형
설명
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.deleteMany() 메서드는 삭제 작업을 설명하는 문서로 해결되는 Promise를 반환합니다.

Promise<object>
유형
설명
result.deletedCount
number
컬렉션에서 삭제 조작에 의해 삭제된 문서 수입니다.

집계 파이프라인 을 실행하고 파이프라인의 출력 문서에 액세스 할 수 있는 커서 를 반환합니다.

const pipeline = [
{ "$group": {
"_id": "$customerId",
"numPurchases": { "$sum": 1 },
"numItemsPurchased": { "$sum": { "$size": "$items" } }
} },
{ "$addFields": {
"averageNumItemsPurchased": {
"$divide": ["$numItemsPurchased", "$numPurchases"]
}
} }
]
return purchasesCollection.aggregate(pipeline).toArray()
.then(customers => {
console.log(`Successfully grouped purchases for ${customers.length} customers.`)
for(const customer of customers) {
console.log(`customer: ${customer._id}`)
console.log(`num purchases: ${customer.numPurchases}`)
console.log(`total items purchased: ${customer.numItemsPurchased}`)
console.log(`average items per purchase: ${customer.averageNumItemsPurchased}`)
}
return customers
})
.catch(err => console.error(`Failed to group purchases by customer: ${err}`))
aggregate(
pipeline: object[],
options?: object
): Cursor
Parameter
유형
설명
pipeline
object[]

하나 이상의 집계 파이프라인 단계의 배열입니다.

참고

지원되는 집계 단계

Atlas App Services는 거의 모든 MongoDB 집계 파이프라인 단계 및 연산자를 지원하지만, 일부 단계 및 연산자는 시스템 함수 내에서 실행해야 합니다. 자세한 내용은 집계 프레임워크 제한 사항을 참조하세요.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.aggregate() 메서드는 집계 파이프라인의 마지막 단계에서 출력되는 모든 문서를 가리키는 커서 객체를 반환합니다. 다음 메서드를 사용하여 집계 결과 세트의 문서를 조작하고 액세스할 수 있습니다.

메서드
설명
cursor.next()

커서 를 반복하고 Promise 를 반환합니다. 커서 의 다음 문서 로 해석됩니다. 커서 가 모두 소진되면 promise는 undefined 로 해결됩니다.

예시

collection.aggregate(pipeline).next()
.then(doc => console.log("next document", doc))
cursor.toArray()

커서가 소진될 때까지 반복하고 반복된 모든 문서가 포함된 배열로 해결되는 Promise를 반환합니다.

예시

collection.aggregate(pipeline).toArray()
.then(docs => console.log("all documents", docs))
cursor.skip(amount)

집계 결과 세트에서 생략할 일치하는 문서 수를 지정합니다. MongoDB는 지정된 숫자를 건너뛸 때까지 정렬 순서에 따라 결과 세트에서 문서를 생략합니다.

참고

cursor.next() 또는 cursor.toArray()를 사용하여 하나 이상의 문서를 검색한 후에는 이 메서드를 호출할 수 없습니다.

참고

함수에서 커서를 반환할 수 없습니다. 대신 cursor.next() 또는 cursor.toArray()를 사용하여 커서를 평가하고 결과를 반환합니다.

주어진 쿼리와 일치하는 컬렉션이나 뷰의 문서 수를 반환합니다.

return itemsCollection.count({ "reviews.0": { "$exists": true } })
.then(numDocs => console.log(`${numDocs} items have a review.`))
.catch(err => console.error("Failed to count documents: ", err))
count(
query?: object,
options?: object
): Promise<number>
Parameter
유형
설명
query
object

선택 사항.

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession
선택 사항. 작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.count() 메서드는 컬렉션에서 쿼리와 일치하는 문서의 정수 수로 해결되는 Promise를 반환합니다.

Promise<number>
설명

Count Result

numDocs: <integer>
제공된 쿼리와 일치하는 컬렉션 내 문서 수입니다.

지정된 쿼리 필터와 일치하는 문서를 찾고 일치하는 모든 문서에서 특정 필드에 대한 고유 값 목록을 반환합니다.

1const taskCollection = context.services.get("mongodb-atlas")
2 .db("tracker").collection("tasks");
3
4return taskCollection.distinct("status", {})
5 .then(results => {
6 console.log(JSON.stringify(results));
7 console.log(results.length);
8 })
9 .catch(err => console.error(err))
distinct(
field: string,
query: object,
options?: object
): Promise<any[]>
Parameter
유형
설명
field
string
각 문서에서 고유 값을 찾을 수 있는 필드의 이름입니다.
query
object

찾을 문서를 지정하는 쿼리 필터 입니다. 빈 쿼리({})를 지정하거나 이 매개변수를 생략하여 컬렉션의 모든 문서와 일치시키세요.

평가 , 지리 공간적 또는 비트 단위 선택기를 제외한 대부분의 쿼리 선택기 를 사용할 수 있습니다. 이러한 선택기는 시스템 기능에서만 사용할 수 있습니다.

options
object
추가 구성 옵션을 지정하는 객체입니다.
options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.distinct() 메서드는 고유 값의 배열로 해결되는 Promise를 반환합니다.

Promise<any[]>

단일 호출로 컬렉션에 대해 여러 삽입, 업데이트 및 삭제 작업을 실행합니다. bulkWrite() 함수 내에서 다음 쓰기 작업 중 하나 이상을 지정할 수 있습니다.

  • insertOne

  • updateOne

  • updateMany

  • deleteOne

  • deleteMany

  • replaceOne

참고

일괄 쓰기는 단일 컬렉션에서만 작동할 수 있습니다.

exports = async function(arg){
const doc1 = { "name": "velvet elvis", "quantity": 20, "reviews": [] };
const doc2 = { "name": "mock turtleneck", "quantity": 30, "reviews": [] };
var collection = context.services.get("mongodb-atlas")
.db("store")
.collection("purchases");
return await collection.bulkWrite(
[{ insertOne: doc1}, { insertOne: doc2}],
{ordered:true});
};
bulkWrite(
operations: object[],
options?: object
): Promise<null>
Parameter
유형
설명
operations
object[]

수행할 bulkWrite 작업의 배열입니다. 지원되는 작업의 예시는 다음과 같습니다:

{ insertOne: { document: { a: 1 } } }
{ updateOne: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }
{ updateMany: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }
{ deleteOne: { filter: {c:1} } }
{ deleteMany: { filter: {c:1} } }
{ replaceOne: { filter: {c:3}, replacement: {c:4}, upsert:true}}
options
object
추가 구성 옵션을 지정하는 객체입니다.
options.ordered
boolean

선택 사항 기본값: true.

true인 경우, 지정된 순서대로 작업이 한 번에 하나씩 실행됩니다 (즉, 순차적으로 실행). 순서가 지정된 작업을 처리하는 동안 오류가 발생하면 목록의 나머지 작업을 처리하지 않은 상태로 전체 일괄 작업이 반환됩니다.

false인 경우, 작업이 독립적으로 실행되며 병렬로 처리될 수 있습니다. 순서가 지정되지 않은 작업을 처리하는 동안 오류가 발생하면 MongoDB는 목록에 남아 있는 쓰기 작업을 계속 처리합니다.

참고

순서가 지정되지 않은 작업은 MongoDB가 병렬로 실행할 수 있기 때문에 이론적으로는 더 빠르게 처리되지만, 쓰기가 순서에 의존하지 않는 경우에만 사용해야 합니다.

options.bypassDocumentValidation
boolean

선택 사항 기본값: false.

true인 경우 작업이 App Services에서 스키마 유효성 검사를 우회합니다.

options.session
ClientSession

선택 사항.

작업이 발생하는 트랜잭션 컨텍스트를 나타내는 세션 객체입니다. 자세한 내용은 트랜잭션을 참조하세요.

collection.bulkWrite() 함수는 nullPromise 를 반환합니다. 로 해석됩니다.

Promise<null>

돌아가기

집계