草庐IT

mongoose-orm

全部标签

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(),但它没有显示出真正的改进。环顾四周没有得到任

node.js - NodeJS/Mongoose/MongoDB - 拉(从数组中)不起作用

我正在尝试从数组(子文档)中提取/删除值。示例文档:{_id:5150a1199fac0e6910000002,name:'somename,items:[{id:23,name:'itemname23'},{id:24,name:'itemname24'}]}我已经从mongo中提取了该文档。我正在尝试:varleft=object.items.pull({id:24});console.log(left)输出:[{id:23,name:'itemname23',_id:5150a1199fac0e6910000045},{id:24,name:'itemname24',_id:51

javascript - 在 node.js 和 mongoose 中缩短 ObjectId

我的网址现在看起来像这样:http://www.sitename.com/watch?companyId=507f1f77bcf86cd799439011&employeeId=507f191e810c19729de860ea&someOtherId=.....所以,如您所见,它变得非常长,非常快。我正在考虑缩短这些ObjectId。想法是我应该向数据库中的每个模型添加名为“shortId”的新字段。所以不要有:varCompanySchema=mongoose.Schema({/*_idwillbeaddedautomaticallybymongoose*/name:{type:St

node.js - Mongoose,如何使用两个或条件执行 find()

我正在尝试进行查找,它将获取所有具有包含正则表达式(有效)的标题或描述的文档,然后进一步过滤它以仅包含将“私有(private)”标志设置为的文档false或“用户”字段设置为给定的userId。这是我目前正在尝试的......FCSet.find({},{"flashCards":0}).or([{'title':{$regex:re}},{'desc':{$regex:re}}]).or([{'private':false},{'user':'userId'}]).sort('title')这应该只返回6行,但它返回56。如果我取出第二个or()那么它适用于按标题/描述过滤。我猜我