草庐IT

mongoose

全部标签

mongodb - 计算 MongoDB 中文档子集的集合统计信息

我知道SE的基本规则是不要在没有给出你已经尝试过的例子的情况下提出问题,但在这种情况下我找不到从哪里开始。我查看了MongoDB的文档,看起来只有两种方法可以计算存储使用量:db.collection.stats()返回有关整个集合的统计信息。在我的例子中,我需要知道集合中数据子集(特定用户的数据)所使用的存储量。Object.bsonsize()返回单个记录的存储大小,这将需要一个游标函数来计算每个文档的大小,一次一个。我对这种方法唯一关心的是大量数据的性能。如果单个用户有数以万计的文档,此过程可能会花费很长时间。有谁知道一种方法可以高效准确地计算集合中记录集的总文档大小。感谢您的帮

node.js - 唯一和稀疏模式级索引 MongoDB 和 Mongoose

我正在尝试使用Mongoose在模式的两个字段上创建索引,这两个字段在MongoDB中是唯一且稀疏的,如下所示:varArraySchema=newSchema({user_id:{type:mongoose.Schema.Types.ObjectId,ref:'User'},event_id:{type:mongoose.Schema.Types.ObjectId,ref:'Event'}},{_id:false});ListSchema.index({user_id:1,event_id:1},{sparse:true,unique:true});然后在用户模式的数组中使用它:va

node.js - 按数组元素(文档)字段排序 - MongoDB/Mongoose

这是模式中的相关部分`varCandidateSchema=newSchema({calculateScore:[{jobname:{type:Schema.ObjectId,ref:'Job'},Score:{type:Number,default:0}}]})`一个应聘者可以申请多个工作,不同的工作得到不同的分数。我想根据具体工作的分数对候选人进行排序。有什么想法吗? 最佳答案 假设变量objectId包含所引用的Job的ObjectId,您可以聚合记录以获得记录sorted通过该特定Job的得分。由于stage操作符$proj

node.js - 在 Mongoose Schema 中创建一个字段,该字段是对同一文档中其他字段的引用

因此,如果修改了原始字段,则复制的字段也会更改。伪代码示例:userSchema={firstName:{type:String},lastName:{type:String},displayName:firstName+''+lastName}这样的事情可能吗?编辑:我需要根据那个字段发出请求,所以我不能在检索它们时只连接这些字段。 最佳答案 您可以使用Hookhttp://mongoosejs.com/docs/middleware.htmluserSchema={firstName:{type:String},lastName

node.js - Mongoose 收集统计/操作查询

首先,发表评论。对于这个问题,所描述的集合是简化的。我对了解如何操作mongo数据库和获取数据统计信息很感兴趣。假设我有一个包含测试结果的集合。架构是:Results{_id:ObjectIdTestNumber:intresult:String//thiscontains"pass"or"fail"//additionaldata}对于每个测试可以有很多报告,因此很可能每个TestNumber出现在多个文档中。如何执行查询以返回整个集合的此信息:TestNumber|countofresult=="pass"|countofresult=="fail" 最

javascript - 使用 Mongoose 添加几何集合

我在Angular中构建了一个表单,以使用Mongoose将GeoJSON功能添加到MongoDB。这些功能包括几个属性和一个带有点和线串的GeometryCollection。问题来了:我能够在我的几何图形中只用一个点创建特征,但我无法用使用lineString的几何集合创建特征。我得到:16755Can'textractgeokeysfromobject,malformedgeometry?或:{[CastError:Casttonumberfailedforvalue"0,0,1,1"atpath"coordinates"]message:'Casttonumberfailedf

javascript - 如何使用 Mongoose.js 3.8.20 和 MongoDB 2.6.5 对文档进行排序?

使用Mongoose3.8.20对文档进行排序不适用于MongoDB2.6.5。在以前版本的MongoDB中,我可以毫无问题地使用.sort({orgName:'ASC'}),现在它会导致错误。database.model.clients.find({myField:'value'}).sort({orgName:'ASC'})//Error:{[MongoError:Can'tcanonicalizequery:BadValuebadsortspecification]name:'MongoError'}.sort({orgName:1})//Sortingisignored..so

node.js - Mongoose 中的自定义模式类型

我是MongoDB的新手,正在从事一个专业网络项目,我必须在Schema中区分同一字段的ObjectId。假设我有架构:TestSchema=newSchema({Invitation:{from:[type:schema.types.objectid,ref:'User']}});邀请可以是不同的类型,例如事件邀请、连接请求邀请(如LinkedIn)或实时session或讨论邀请。现在,如果我遵循上述架构,那么不同类型邀请的ObjectId将存储在相同的字段from中,这将不是通用和困难的获取或区分哪个ObjectId属于哪个邀请类型。就像我将它们存储在单个数组[]中一样,我想让该数

node.js - 如何在 Mongoose /Node 中获得平均评分

我在angularjs的前端有一个星级评级指令,我可以将评级保存到评级集合中。这是我的评级模式/模型:varmongoose=require('mongoose');module.exports=mongoose.model('Rating',{bourbonId:{type:mongoose.Schema.ObjectId,ref:'Bourbon'},userId:{type:mongoose.Schema.ObjectId,ref:'User'},rating:{type:Number,required:true},ratingId:{type:mongoose.Schema.O

javascript - 使用 Mongoose.js 按嵌套数组中的字段排序

鉴于下面的数据结构(基于我的模型),我将如何使用mongoose按cars.year按desc顺序对集合进行排序?因此,首先我在汽车数组中找到最大年份,然后按它对集合进行排序。{"_id":1234,"dealershipName":"Eric’sMongoCars","cars":[{"year":2013,"make":"10gen","model":"MongoCar",},{"year":1985,"make":"DeLorean","model":"DMC-12",}]},{"_id":1235,"dealershipName":"Eric’sMongoCars","cars