草庐IT

mongoose-dbref

全部标签

node.js - Mongoose,更新对象数组中的值

有没有办法更新对象中的值?{_id:1,name:'JohnSmith',items:[{id:1,name:'item1',value:'one'},{id:2,name:'item2',value:'two'}]}假设我想更新id=2的项目的名称和值项目;我已经尝试了以下w/Mongoose:varupdate={name:'updateditem2',value:'twoupdated'};Person.update({'items.id':2},{'$set':{'items.$':update}},function(err){...这种方法的问题是它会更新/设置整个对象,因此

javascript - 如何使用 Mongoose 从集合中删除所有文档?

我知道如何...删除单个文档。删除集合本身。使用Mongo从集合中删除所有文档。但我不知道如何使用Mongoose从集合中删除所有文档。我想在用户单击按钮时执行此操作。我假设我需要向某个端点发送AJAX请求并让端点执行删除,但我不知道如何处理端点的删除。在我的示例中,我有一个Datetime集合,我想在用户单击按钮时删除所有文档。api/datetime/index.js'usestrict';varexpress=require('express');varcontroller=require('./datetime.controller');varrouter=express.Ro

mongodb - Mongoose 唯一索引不起作用!

我试图让MongoDB根据其索引检测重复值。我认为这在MongoDB中是可能的,但是通过Mongoose包装器,事情似乎被破坏了。所以对于这样的事情:User=newSchema({email:{type:String,index:{unique:true,dropDups:true}}})我可以用同一封电子邮件保存2个用户。该死。这里表达了同样的问题:https://github.com/LearnBoost/mongoose/issues/56,但该线程是旧的,无处可寻。现在,我手动调用数据库来查找用户。该电话并不昂贵,因为“电子邮件”已编入索引。不过还是让它原生处理就好了。有没有

node.js - 如何保护 Mongoose/MongoDB 中的密码字段,以便在填充集合时它不会在查询中返回?

假设我有两个集合/模式。一个是带有用户名和密码字段的用户架构,然后,我有一个博客架构,它在作者字段中引用了用户架构。如果我使用Mongoose做类似的事情Blogs.findOne({...}).populate("user").exec()我也将填充博客文档和用户,但是如何防止Mongoose/MongoDB返回密码字段?密码字段经过哈希处理,但不应返回。我知道我可以省略密码字段并在一个简单的查询中返回其余字段,但我如何使用填充来做到这一点。另外,有什么优雅的方法可以做到这一点?另外,在某些情况下,我确实需要获取密码字段,例如当用户想要登录或更改密码时。

node.js - 在 Mongoose 中将两个 OR 查询与 AND 组合

我想在Monoose中将两个OR查询与AND组合,就像在这个SQL语句中一样:SELECT*FROM...WHERE(a=1ORb=1)AND(c=1ORd=1)我在一个NodeJS模块中尝试了这个,它只从主应用程序中获取模型对象:/**********Mainapplication***********/varquery=MyModel.find({});myModule1.addCondition(query);myModule2.addCondition(query);query.exec(...)/************myModule1***************/exp

node.js - 编译 Mongoose 后无法覆盖模型

不确定我做错了什么,这是我的check.jsvardb=mongoose.createConnection('localhost','event-db');db.on('error',console.error.bind(console,'connectionerror:'));vara1=db.once('open',function(){varuser=mongoose.model('users',{name:String,email:String,password:String,phone:Number,_enabled:Boolean});user.find({},{},fun

javascript - Mongoose:获取完整的用户列表

我曾尝试使用Mongoose发送所有用户列表如下:server.get('/usersList',function(req,res){varusers={};User.find({},function(err,user){users[user._id]=user;});res.send(users);});当然,res.send(users);会发送{},这不是我想要的。是否有一个语义略有不同的find替代方案,我可以在其中执行以下操作?server.get('/usersList',function(req,res){User.find({},function(err,users){

mongodb - 使用 Mongoose 从 MongoDB 文档中删除一个键

我正在使用Mongoose使用node.js访问MongoDB的库有没有办法从文档中删除key?即不只是将值设置为null,而是将其删除?User.findOne({},function(err,user){//correctlysetsthekeytonull...butit'sstillpresentinthedocumentuser.key_to_delete=null;//doesn'tseemtohaveanyeffectdeleteuser.key_to_delete;user.save();}); 最佳答案 在早期版本

node.js - 保存后 Mongoose 填充

我无法手动或自动在新保存的对象上填充创建者字段...我能找到的唯一方法是重新查询我已经拥有的我不想做的对象。这是设置:varuserSchema=newmongoose.Schema({name:String,});varUser=db.model('User',userSchema);varbookSchema=newmongoose.Schema({_creator:{type:mongoose.Schema.Types.ObjectId,ref:'User'},description:String,});varBook=db.model('Book',bookSchema);这是

mongoDB/ Mongoose : unique if not null

我想知道是否有办法强制唯一的集合条目但前提是条目不为空。e示例架构:varUsersSchema=newSchema({name:{type:String,trim:true,index:true,required:true},email:{type:String,trim:true,index:true,unique:true}});在这种情况下不需要“电子邮件”,但如果保存了“电子邮件”,我想确保此条目是唯一的(在数据库级别上)。空条目的值似乎是“null”,因此每个没有电子邮件的条目都会因“唯一”选项而崩溃(如果有其他用户没有电子邮件)。现在我正在应用程序级别解决它,但很想保存该