草庐IT

mongoose-encryption

全部标签

node.js - 如何使用点符号查找记录并使用 Mongoose 更新模式中的值

我正在使用mongoose在我的数据库上执行CRUD操作。这就是我的模型的样子。varEmployeeSchema=newSchema({name:String,description:{type:String,default:'Nodescription'},department:[],lastUpdated:{type:Date,default:Date.now}});部门可以包含这样的对象数组。[{"id":"55ba28f680dec4383eeebf97","text":"Sales","topParentId":"55ba28f680dec4383eeebf8b","top

node.js - 文档中的空字段是否会占用 Mongoose 中的空间?

我没有求助于继承或引用,而是考虑定义一个包含所有可能字段的模式。因此,模式将有许多字段,其中一些字段在大多数情况下都是空的。空字段是否仍会占用数据库空间?我应该改为定义单独的架构吗? 最佳答案 由于您使用的是Mongoose,因此答案涉及很多细微差别。Mongoose会根据字段类型做各种事情。如果您定义String的Number类型的字段,例如{name:String,age:Number}姓名和年龄都不是“必填”字段。一旦您仅使用名称调用create,例如model.create({name:'Yuri'})然后在您的数据库中,您

node.js - 来自 mongoose 方法的新文档

我想用新方法“创建”扩展模型。它将检查文档创建的要求、创建其他文档等。通常我打电话varuser=newUser({});但是我如何从mongoose方法本身创建文档呢?即User.methods.create=function(userObject,callback){//somechecksvardoc=???;doc.save(function(err){if(err)returncallback(err);//savingdonecallback(null,doc);});}更新:感谢@chridam的回答,我的最终代码现在看起来像这样:User.statics.create=

node.js - NodeJS 和 mongoose - 查找上一小时的记录

我正在查询我的MongoDB,我想用2个表填充UI:数据库中的所有记录当前记录,在过去一小时内创建我能够获取所有记录,但下面的当前记录查询不起作用。app.get('/',function(req,res){varmyDate=newDate(Date.now()-1*60*60*1000);varcurr=MyCollection.find({_id:{$gt:myDate}}).exec();MyCollection.find({},function(err,doc){res.render('index.jade',{latest:curr,all:doc});//thisquer

node.js - Mongoose 将 strict 设置为 false 会禁用验证

我有以下架构varSchema=newmongoose.Schema({type:{required:true,type:String,enum:["device","beacon"],index:true},device:{type:{type:String},version:{type:String},model:{type:String}},name:String,beaconId:{required:false,type:mongoose.Schema.Types.ObjectId},lastMeasuredTimestamp:{type:Number,index:true},

mongodb - 根据精益查询的结果创建 Mongoose 模型

我正在使用精益查询来更快地从我的数据库中检索大型数据集。大部分检索到的数据都被使用但没有修改或保存,所以精益查询很好,但我需要使用模式方法修改和保存一小部分对象。当我遍历精益查询的结果时,是否可以为这些结果创建mongoose对象,将大部分结果保留为精益格式?我知道的唯一方法是使用数据创建新对象,然后将isNew设置为false,但这需要我为此目的创建一个构造函数并且看起来有点老套。所以我想知道是否基本上与toObject()相反 最佳答案 您可以使用Model.hydrate()为此。

JSON.stringify 不适用于 NodeJs 中的 Mongoose 对象

我在控制台mongoose对象时遇到错误。这是我的代码:-varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/test');vardb=mongoose.connection;db.on('error',console.error.bind(console,'connectionerror:'));db.once('open',function(){console.log('Yea!weareconnected.');});console.log(JSON.stringify(mongoose));

node.js - Mongoose 首先按一个属性排序和限制,然后按另一个属性排序

我怎样才能获得count最高的那n个数据集,但返回它们按名称排序?我尝试了以下方法,但这不起作用。db.Foo.find().sort({'count':-1}).limit(n).sort({'name':1})//doesnotwork.exec(...);除了手动对返回的json数组进行排序,还有其他解决办法吗?比如SQL中的子查询?SELECT*FROM(SELECT*FROMFooORDERBYcountDESCLIMITn)AStmpORDERBYnameASC; 最佳答案 只要一个查询有多个这样的步骤,一个aggreg

node.js - Mongoose :查询数据库排除包含非拉丁字符的结果

我有一个包含不同语言数据的数据库,我想从查询结果中排除包含非拉丁字符(阿拉伯语、希伯来语、希腊语...)的文本。是否可以使用标准Mongoose函数?我想要这样的东西:QuoteModel.find({$where:"this.text!="},function(error,quotes){...} 最佳答案 您可以在MongoDB查询中应用正则表达式以仅获取包含拉丁文本的文档。db.collection.find({news:{$regex:"[\p{L}\s]+"}})我收集了以下输入文档[{"_id":ObjectId("56

javascript - Mongoose 种群

我有这个Mongoose模式varItemSchema=newSchema({"name":String,"review":[{type:Schema.Types.ObjectId,ref:'Reviews'}]});评论的架构是:varReviewSchema=newSchema({"title":String,"user":{type:Schema.Types.ObjectId,ref:'Users'}});用户的模式是:varUserSchema=newSchema({"name":String,"surname":String,});这是获取项目的代码:Item.findOne