2012-04-24 3 views
1

MongoDB 컬렉션에 GUID 유형 키가있는 문서가 일부 있습니다. 새 행을 GUID 유형 키와 함께 새 행에 복사 할 수 있습니다. GUID는 셸을 사용합니다.MongoDB 셸에서 새 GUID를 사용하여 새 행을 생성합니다.

db.schedules.find().forEach(function(x) { 
    x._id = null; 
    db.schedules.save(x); 
}); 

은 내가 null로 설정 후 _id 필드가 자동으로 생성 할 것으로 예상하지만, 물론 순진였습니다 :이 시도했다. 셸에서 새 GUID를 생성하는 방법은 무엇입니까?

UPDATE

분명히 불가능 쉘에서 GUID를 생성합니다. 나는 Mongo C# 드라이버를 사용하기 위해 C#으로 미니 스크립트를 작성했다.

답변

5

대신을 시도해보십시오

x._id = new ObjectId(); 
db.schedules.insert(x); 

을 또한 수행 할 수 있습니다

delete x._id; 
db.schedules.insert(x); 
+0

음, 작동,하지만 물론 ID는 ObjectId가 ** ObjectId가 ("4f963746ee633c3aa4a71a60") ** 오히려입니다 C# GUID ** BinData (3, "+ Wgv1RJhr0K5/qbi3McvlQ ==") **보다. C# 드라이버의 기능이라고 생각합니다.이 작업을 위해 사용해야합니다. – McGarnagle

+0

예, 셸에는 GUID를 생성 할 수있는 방법이 없습니다. GUID 값이있는 경우 BinData 래퍼를 통해 셸에서 설정할 수 있지만 (기준 64), 새 값을 생성 할 수는 없습니다. (죄송합니다. GUID를 원하지 않으 셨습니다.) –

+0

k, 설명을 위해 thx. – McGarnagle

관련 문제