草庐IT

mongodb - Mongoid 中的自定义查询

是否可以将自定义javascript传递给Mongoid,类似于事件记录中的find_by_sql或update_all?我想到的特殊情况是我想在一堆符合条件的文档上inc一个字段。看起来这在MongoDB中是可行的:http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperationsdb.people.update({name:"Joe"},{$inc:{created_at:-1}});但我不认为Mongoid允许它(它似乎一次只允许你inc一个文档)。而他们的update_all方法我相信只能用$set。

c# - MongoDB c# Update.PushWrapped,怎么用?

我如何将一个项目推送到数组中?我发现我只能插入基本值(String、Int32、Int64、Boolean),但我不能将自定义类的实例插入到数组中。//inthisway,itwork:varmyPlayer=newi_Player();this.mongo_collection.FindAndModify(Query.EQ("_id",ID),SortBy.Ascending("_id"),Update.PushWrapped("_player",myPlayer),true);//inthisway,don'tworkbecausei_PlayerisnotanBsonValueb

Mongodb - 更新部分文档

在Mongodb中可以限制一次更新的文档数量吗?我有一个按插入日期(即按_id)排序的项目列表,我只想更新(示例)5个最旧的项目。我可以检索到我想要的信息db.mycoll.find({}).limit(5)我可以更新一个(因此循环上一个查询的结果)或所有(或使用组合)db.mycoll.update({"_id":ObjectId("4f672a5175fa1c01c100001d")},{$set:{'b':'test'}},false,true)db.mycoll.update({},{$set:{'b':'test'}},false,true)但是我无法通过对更新请求进行限制的

mongodb - 使用 Mongoose 执行非 '$set' 更新

Mongoose文档指出任何模型更新都是使用“$set”自动发送的:varquery={name:'borne'};Model.update(query,{name:'jasonborne'},options,callback)//issentasModel.update(query,{$set:{name:'jasonborne'}},options,callback)但我想执行传统的Mongo更新,实际上,重置具有提供的值的文档。但我似乎无法找到使用Mongoose执行此操作的任何简单方法。有任何想法吗? 最佳答案 您可以使用n

mongodb - 构建UpdateBuilder时如何避免 'Duplicate Element Name'错误

考虑下面的类publicclassSomething{publicObjectIdId;publicDateTimeDbUpdatedAt;publicstringAnotherProperty;publicintSomeIntProp;}我通常会使用以下代码进行部分更新varobj=...//aninstanceofSomethingvarupdate=newUpdateBuilder();update.Set(x=>x.DbUpdatedAt,DateTime.UtcNow);...///lateron,//databaseisaninstanceofMongoDatabaseda

angularjs - MongoDB + AngularJS : _id empty in update via resourceProvider

我正在使用Mongodb(Rails3+Mongoid)和AngularJS。在我的数据库中,我有一个集合users,它包含一组对象addresses。我正在尝试更新数组中某个地址的字段,但是当我发送更新请求(使用Angular的resourceProvider)时,Angular发送到我的服务器的所有_id是“{}”(即空),所以我最终得到了复制而不是修改。$scope.user.addresses包含非空ID,看起来像这样:[{_id:{$oid:"123431413243"},text:"123fake",cat:1},{_id:{$oid:"789789078907890},t

mongodb - 从键值对列表更新一组文档

我正在寻找是否有更好的方法来执行这种特定类型的批量更新。如果我有一个_id和values的列表或映射,这样:varupdates=[{_id:"abc",field:12},{_id:"abd",field:32},{_id:"xyz",field:22},//...snip(100ormorerecords)...}我想用列出的每个文档上的field的新值更新myCollection,例如:varupdate;for(vari=0;i但这似乎很陈旧,因为它必须将每个查询一个一个地往返于服务器。在SQL中,我会通过执行单个查询(或使用临时表)来避免额外的往返:WITHbatch_upd

c# - Linq to Mongodb动态更新函数

我正在尝试使用泛型动态更新集合。我有一个可行的解决方案:MongoCollectionsymbolcollection=database.GetCollection("Symbols")varquery3=Query.EQ(e=>e.Id,("0000000000021325640.0");varupdate=Update.Set(e=>e.Name,"abc");//updatemodifierssymbolcollection.Update(query3,update);但我的问题是如何在不显式声明集合类型的情况下动态更新集合中的项目?我试过这样的:varquery=Query.E

javascript - Mongodb update() 与 findAndModify() 性能对比

对于不断增长的文档,我可以选择使用update()或findAndModify()来插入新的数组字段中的元素。但是,findAndModify()将在我的特定应用程序中生成更清晰的代码。但是我可以使用update()实现相同的功能,只是更加困惑。我只是想知道使用update()而不是findAndModify()能获得多少性能提升。非常感谢! 最佳答案 我使用mongoshell进行了快速测试。对于本文档:{"c":50,"growingArray":[0]}我运行了两个测试:for(i=1;i在我的中端笔记本电脑上总共花费了40.

PHP mongodb 更新 - $push array into array

我正在尝试用新事件更新Mongo文档中的"coordinates"属性。IE。将“坐标”数组(包含事件数组)与新的事件数组合并。到目前为止我有什么:$update=array('$push'=>array("coordinates"=>$events));/**@var\MongoCollection$collection*/$collection=$db->$collectionName;$return=$collection->update($conditions,$update,$options);if($return===false){thrownew\ErrorExcepti