2011-02-24 50 views

回答

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; 

也许pull请求:)

+0

字段的值应该是什么?一个expando对象?另一个匿名类型? – Alex 2011-02-25 12:36:54

+0

据我所知,两者都得到NoRM的支持。您可以在您的方法上使用泛型参数,并且NoRM将使用expando中受益的类型或使用匿名类型上的反射。 – Nekresh 2011-02-27 19:04:59

+0

你有一个例子..?我在MongoDB中发现了一个错误,它阻止了我做一些我想要的东西 - http://jira.mongodb.org/browse/SERVER-2626 – Alex 2011-02-27 20:07:50

-2

使用字段说明符。例如

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

抱歉,你错过了关键的一点 - NoRM(C#的包装) – Alex 2011-02-25 09:38:27