草庐IT

mongoose-dbref

全部标签

node.js - 如何以优雅的方式在多个项目中重用 Mongoose 模型

假设我有3个node.js项目(1个应用后端、1个应用管理后端、1个分析api)。在每个项目中,我都有一个模型模式调用贷款。{attributes:{userId:{type:String,required:true,index:true,ref:'users',comment:'用户id'},amount:{type:Number,required:true,min:0},totalAmount:{type:Number,required:true,min:0},penaltyInterest:{type:Number,min:0,required:true,default:0}}m

mongodb - Mongoose 大于等于

如何使用Mongoose从Mongodb获取大于或等于整数值?假设下面的列表list=[134,56,89,89,90,200]//Marksfield想要获取等于或大于89的值,结果集必须是[89,90,200]在我的查询中,我能够得到大于89的值,我想用89得到它letx=89;query.find().where('marks').gt(x); 最佳答案 我不知道你使用的是什么版本的mongodb。但这是最新版本中提供的内容。$gte选择字段值大于或等于(即>=)指定值的文档query.find({marks:{$gte:89

javascript - Mongoose 批量更新操作

有没有办法在mongoose中对集合进行批量更新?我发现的策略使用原始收集驱动程序如下:varbulk=Person.collection.initializeOrderedBulkOp();bulk.find(query).update(update);...bulk.execute(callback)但是,当我这样做时,bulk是未定义的。mongoose不支持吗? 最佳答案 NOTE:ModernMongoosereleasessupport.bulkWrite()directlyontheModelmethods.Itisp

node.js - 链接 Mongoose 查询的最佳方式

我是一名使用node和mongoose的新手开发人员,想知道用mongoose链接查询的最佳方式是什么。我正在像下面那样做,它不起作用。User.findByIdAndUpdate(req.params._id,user,{upsert:true}).exec((err,updatedUser)=>{if(addedCollections){returnUser.findByIdAndUpdate(req.params._id,{$push:{_collections:{$each:addedCollections}}},{upsert:true}).exec();}returnnew

javascript - 使用 Mongoose 在 Node JS 中进行全文搜索

我正在尝试对Mongoose中的字符串数组执行全文搜索,但出现此错误:{[MongoError:textindexrequiredfor$textquery]name:'MongoError',message:'textindexrequiredfor$textquery',waitedMS:0,ok:0,errmsg:'textindexrequiredfor$textquery',code:27}但是,我确实在用户架构的字段上声明了一个文本索引,并且我确认已创建文本索引,因为我使用的是mLab。我正在尝试对字段执行全文搜索这是我的用户架构:varuserSchema=mongoos

node.js - 如果不存在,Mongoose.connect 不会创建数据库

我是NodeJs的新手,我正在学习如何使用带有Mongoose库的NodeJS连接到mongodb。据我所知,当我连接到一个名称的数据库时,如果这个名称的数据库不存在,那么Mongoose会自动创建它,但它不是和我一起创建的。这是我的代码:constmongoose=require("mongoose");mongoose.connect("mongodb://127.0.0.1:27017/mongo-test",{useNewUrlParser:true}).then(()=>console.log("Connected")).catch(err=>console.log(err)

node.js - 当我想要更多/全部时,Mongoose 将查询限制为 1000 个结果(从 2.6.5 迁移到 3.1.2)

我正在将我的应用程序从Mongoose2.6.5迁移到3.1.2,并且遇到了一些意外行为。也就是说,我注意到查询结果自动限制为1000条记录,而几乎所有其他内容都一样。在我的代码(如下)中,我设置了一个值maxIvDataPoints来限制返回的数据点的数量(并最终发送到客户端浏览器),并且该值在其他地方设置为1500。我使用计数查询确定潜在结果的总数,然后使用maxIvDataPoints的计数和值确定mod的值来限制实际查询结果的后续mod。我正在运行node0.8.4和mongo2.0.4,用coffeescript编写服务器端代码。在安装mongoose3.1.x之前,代码运行

javascript - Mongoose/Nodejs 中的延迟加载/更多数据滚动

我想知道如何使用Mongoose在滚动时实现延迟加载/更多数据。我想一次加载10个帖子,但我不确定如何最好地加载查询中的下10个元素。我目前有:varq=Post.find().sort("rating").limit(10);加载“评分”最高的10个帖子。对于下一个10个帖子,我该如何做呢? 最佳答案 “分页”的一般概念是使用.skip()本质上“跳过”已经检索到的结果,因此您基本上可以这样做:varq=Post.find().sort("rating").skip(10).limit(10);但实际上,正如您可以想象的那样,当您

node.js - Mongoose :不允许更新特定字段

varpost=mongoose.Schema({..._createdOn:Date});我希望仅在创建文档时允许设置_createdOn字段,并且不允许在未来更新时更改它。在Mongoose中是如何实现的? 最佳答案 我通过在模式的预保存钩子(Hook)中设置_createdOn实现了这个效果(仅在第一次保存时):schema.pre('save',function(next){if(!this._createdOn){this._createdOn=newDate();}next();});...并禁止从其他任何地方进行更改:

node.js - mongoose在查询时降低内存使用的方法

我正在处理Node后端,试图通过mongoose优化对mongodb的非常繁重的查询。预期的返回大小相当可观,但由于某种原因,当我发出请求时,Node开始消耗大量内存,例如,单个大请求需要200mb+。考虑到大多数情况下返回的大小小于10mb,这似乎不正确。它在完成后也拒绝释放内存,我知道这可能只是V8GC执行其默认行为,但我担心的是单个find()请求消耗的大量内存。我已通过对find()调用的测试将其隔离。一旦完成调用,它会执行一些后期处理,然后将数据发送到回调,所有这些都在一个匿名函数中。我尝试使用查询流而不是model.find(),但它没有显示出真正的改进。环顾四周没有得到任