草庐IT

sinon-mongoose

全部标签

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

node.js - Mongoose 更新数据信息,如何防止覆盖

所以我尝试使用Mongoose更新mongodb数据库中的数据存储原来的数据结构是这样的{"_id":ObjectId("234u232kjrkjwebrkw"),"local":{"password":"sdflsdjflsdjlfkjsdlkfjklsdjflksd","email":"email@email.com"},"__v":0}我正在尝试更新“本地”中的“用户名”属性。之后它应该是{"_id":ObjectId("234u232kjrkjwebrkw"),"local":{"password":"sdflsdjflsdjlfkjsdlkfjklsdjflksd","ema

node.js - Mongoose 两次定义字段时抛出 `Field is not in schema` 错误

我正在使用Nodev0.10.31和mongoose@3.8.22。我想我遇到了一个在特定事情发生时出现的错误。此错误的影响使我无法在同一架构上拥有字段“name”和“father.name.full”。这就是我定义模式的方式:'usestrict';varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/myapp');varPersonSchema=newmongoose.Schema({name:{type:mongoose.Schema.Types.ObjectId,ref:'Name',//i

mongodb - 在 Mongoose 对象上创建锁

我有两个回调,它们经常使用mongoose修改同一个mongo对象。修改很复杂,以至于我无法在一次update()中轻松完成。结果,很多时候只应用了两个更新中的一个,我得到了一个[VersionError:Nomatchingdocumentfound.]错误。有没有什么方法可以显式锁定文档,以便每个更新都可以等待另一个完成,并且可以在不担心竞争条件的情况下发生? 最佳答案 Mongodb不支持对象锁定,但是您可以自己实现。你必须做出选择乐观的并发控制(当资源争用较少时)-这可以使用versionNumber或timeStamp字段

node.js - find() 的 Mongoose 默认过滤器/查询参数

如果我有一系列文档,例如:{type:'post',text:'example',status:'private'//or'public'}我可以使用哪种中间件或架构配置来确保默认情况下,Model.find()仅返回status!='private'的文档?我不想每次查询集合时都必须冗余查询status!='private'。感谢您的帮助! 最佳答案 您可以尝试为您的模型实现一个包装方法,例如findNonPrivate(),然后您可以委托(delegate)它查找每个status不等于的文档“私有(private)”。像这样:v

javascript - 切换到 Mongoose ,我不应该使用请求客户端吗?

我正在大致围绕此处找到的演示创建一个MEAN堆栈应用程序:https://github.com/angular-app/angular-app我是mongo的新手,但想在服务器端使用Mongoose,并注意到它当前使用请求客户端与数据库对话:代码:https://github.com/angular-app/angular-app/blob/master/server/lib/mongo-strategy.jsvarrest=require('request');...MongoDBStrategy.prototype.query=function(query,done){query.

node.js - 如何在 Mongoose Schema 方法中指定 `this`

我尝试在Mongoose中摆弄一下模式方法。我想知道如何从我正在使用的模式中调用信息,有点像使用this。我的架构如下所示:'usestrict';varmongoose=require('mongoose'),Schema=mongoose.Schema;varBuildingSchema=newSchema({name:String,info:String,level:{//Thecurrentlevelofthetemplate,defaultvalueis1type:Number,default:1},ressource:{//Ressouceslevel:[{gain:[{/

node.js - 转换 Mongoose find 函数返回的数组的结果

我已经在我的Schema的toObject中添加了一个转换函数来去除某些属性,并将_id的名称更改为id。当我使用findOne并对结果调用toObject时效果很好,但我也有一个find({},(err,items)=>{。..})命令。无法在数组上调用toObject。这是我的架构:varItemSchema=newSchema({version:{type:String,default:'1.0.0'},created:{type:Date,default:Date.now},modified:{type:Date,default:Date.now},properties:Sch

mongodb - 我应该在 mongoose 模式中使用混合数据还是单独数据?

如果我有一个订单模式,什么是更好的设计,这个:varschema=newSchema({name:String,timePlaced:Date,packageDimensions:{height:Number,width:Number,weight:Number}})或者这个varschema=newSchema({name:String,timePlaced:Date,height:Number,width:Number,weight:Number}) 最佳答案 没有令人信服的理由为如此少量的数据制作子文档。使用Mongoose,