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

MongoDB - 새로 생성된 컬렉션에 행을 복사하는 방법은 무엇입니까?

<시간/>

행을 다른 컬렉션으로 복사하려면 MongoDB를 사용하십시오. 구문은 다음과 같습니다. 여기서 "yourOldCollectionName"은 이전 컬렉션이고 이 컬렉션이 복사되는 위치는 "yourNewCollectionName" -

과 같은 새 컬렉션입니다.
db.yourOldCollectionName.aggregate([{ $sample: { size: 333333 }}, {$out: "yourNewCollectionName"} ],{allowDiskUse: true});

먼저 문서로 컬렉션을 생성해 보겠습니다. −

> db.sourceCollection.insertOne({"EmployeeName":"Robert","EmployeeSalary":15000});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0397c1f5e889d7a5199506")
}
> db.sourceCollection.insertOne({"EmployeeName":"David","EmployeeSalary":25000});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0397c3f5e889d7a5199507")
}
> db.sourceCollection.insertOne({"EmployeeName":"Mike","EmployeeSalary":29000});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0397c4f5e889d7a5199508")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.sourceCollection.find().pretty();

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : ObjectId("5e0397c1f5e889d7a5199506"),
   "EmployeeName" : "Robert",
   "EmployeeSalary" : 15000
}
{
   "_id" : ObjectId("5e0397c3f5e889d7a5199507"),
   "EmployeeName" : "David",
   "EmployeeSalary" : 25000
}
{
   EmployeeName" : "Mike",
   "E"_id" : ObjectId("5e0397c4f5e889d7a5199508"),
   "mployeeSalary" : 29000
}

다음은 새 컬렉션 "destinationCollection"을 만드는 쿼리입니다. -

> db.createCollection('destinationCollection');
{ "ok" : 1 }

다음은 "sourceCollection"에서 다른 새 컬렉션 "destinationCollection"으로 행을 복사하는 쿼리입니다. -

> db.sourceCollection.aggregate([{ $sample: { size: 333333 }}, {$out: "destinationCollection"} ],{allowDiskUse: true});

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.destinationCollection.find().pretty()

그러면 새 컬렉션이 첫 번째 컬렉션 "sourceCollection"에서 레코드를 복사한 다음과 같은 출력이 생성됩니다. -

{
   "_id" : ObjectId("5e0397c4f5e889d7a5199508"),
   "EmployeeName" : "Mike",
   "EmployeeSalary" : 29000
}
{
   "_id" : ObjectId("5e0397c3f5e889d7a5199507"),
   "EmployeeName" : "David",
   "EmployeeSalary" : 25000
}
{
   "_id" : ObjectId("5e0397c1f5e889d7a5199506"),
   "EmployeeName" : "Robert",
   "EmployeeSalary" : 15000
}