2011-02-24 6 views
1

FindAndModify를 수행하는 동안 필드를 지정할 수 있습니까? 따라서 하나의 필드 만 반환됩니까?NoRM - 인수가있는 FindAndModify

또한 존재하지 않는 경우 업서 트를 수행하여 개체를 만들 수 있습니까?

로 당 : 는 약간의 혼동이 될 것 같습니다 - 나는 놈에게 (C#을) https://github.com/atheken/NoRM/

을 사용하고을 : http://www.mongodb.org/display/DOCS/findAndModify+Command

내가 추가 인수

를 추가하는 어떤 방법을 볼 수 없습니다 EDIT

+0

'필드'매개 변수에 어떤 문제가 있습니까? –

답변

1

실제로 NoRM에서는 가능하지 않습니다. 프로젝트를 포크하고 과부하 된 FindAndModify 메서드를 NoRM/Collections/MongoCollectionGeneric.cs 파일에 추가하여이 동작을 지원할 수 있습니다.

findOne에 전달 된 익명 객체에 fields 필드를 추가해야 할 수도 있습니다.

var returnValue = cmdColl.FindOne(new 
{ 
    findandmodify = this._collectionName, 
    query = query, 
    update = update, 
    sort = sort, 
    fields = fields 
}).Value; 

그리고 어쩌면 풀 요청 :

+0

필드의 값은 어떻게해야합니까? expando 객체? 또 다른 익명의 유형? – Alex

+0

내가 기억하는 한 모두 NoRM에서 지원합니다. 당신은 당신의 메소드에 일반적인 인자를 사용할 수 있습니다. 그리고 NoRM은 expando에서 이득을 얻거나 익명의 타입에 대한 리플렉션을 사용하여 런타임에 타입을 사용할 것입니다. – Nekresh

+0

예제가 있습니까 ..? 나는 mongodb에서 내가 원하는 것을하고있는 걸 막았습니다. http://jira.mongodb.org/browse/SERVER-2626 – Alex

-2

필드 지정자를 사용하십시오. 예 :

db.foo.findAndModify({query:{_id:"myid"}, 
update:{$set:{priority:78}},new:true,fields:{_id:1,priority:1}}) 
+0

죄송합니다 - 중요한 비트 - NoRM (C#의 래퍼)을 놓친 경우 – Alex