草庐IT

Mongoose-Crate

全部标签

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

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.