Tag: mongoose

Mongoose中的Mongoose身份validation数据库2.6

除了系统pipe理员 ,我还有数据库A , B , C 我想添加一个已经读写访问A , B , C的用户 。 // attempt 1 use admin db.createUser({ user: "Bob", pwd: "1234", roles: [ { role: "readWriteAnyDatabase", db: "admin" } ] }) 。 // attempt 2 use admin db.createUser({ user: "Bob", pwd: "1234", roles: [ { role: "readWrite", db: "A" }, { role: "readWrite", db: […]

MongoDB / Mongoose聚合或$或不按预期工作?

在html中有一些checkboxbutton,我想通过API on.click过滤AJAX结果。 有3种结果:upVote,noVote,downVoted。 根据哪个checkbox被选中,用户将看到upVote,noVote和downVoted文档的组合。 ajax调用API的URL,并且在通过node.js API中的以下循环运行之后,数据到达数据库调用,该循环通过string数组循环[“upVoted”,“noVote”,“downVoted” ](或其任何组合)并将true的布尔值赋给相应的variables: var upVoted = false; var noVote = false; var downVoted = false; storyFiltering.forEach(storyFiltering); function storyFiltering(element, index, array) { if (element == 'upVoted') {upVoted = true} else if (element == 'noVote') {noVote = true} else if (element == 'downVoted') {downVoted = true} } console.log('upVoted: ' + upVoted + ', […]

如何重新注册(或删除)现有的Mongoose模式/模型?

复杂的问题,我怀疑很多人不得不遇到…但我试图pipe理模式dynamic后运行,如更新/replace模式已被加载。 基本上是一个应用程序,可以让你创build,注册,然后更新架构(然后填充)。 当然,试图重新定义已经注册的模式会导致这个错误: OverwriteModelError: Cannot overwrite [myModelName] model once compiled. 一旦它被创build,有什么办法可以销毁一个mongoose模型/模式? 我检查了API文档并找不到解答。 在飞行中创build新的模式就像一个冠军 – 但更新他们扔我的砖墙。 宁可不叉叉mongoose添加这个function,如果我可以根本帮助它:) 谢谢你的帮助!

Node中带有error handling的多重承诺

我怎样才能避免在Node.js中的服务调用链的嵌套地狱,我想抛出一个给定的错误,并在某些情况下退出整个链? 这是一个链的例子: 加载Mongoose对象。 如果加载失败, res.send(404) ; 如果加载成功,则转到下一个then() 。 呼叫第三方API来获取一些数据。 如果API调用失败,请发送正确的响应(比如,为了解决这个问题,正确的状态码是500 ) 如果API调用成功,则呈现该页面。 SomeMongooseModel.findOne({id:123}).exec() .then(function(response) { // If group is empty, would like to res.send(404) and resolve the // promise immediately. }) .then(function(response) { // Hit 3rd party API to retrieve data. If there's an issue, return // response code of 500 and resolve promise immediately. […]

尝试使用唯一索引保存mongoose文档时,节点服务器崩溃

我有一个集合,其中有一个领域作为一个独特的领域。 var ProductSchema = new mongoose.Schema({ code: {type:String, required:true}, name: {type:String, default:""} }); ProductSchema.index({ code: 1}, { unique: true }); 当我用一个已经存在的代码创build一个新文档时,服务器崩溃而不是通过callback返回一个错误: module.exports.create = function (params, callback){ var product = new ProductModel(params); product.save(function(error){ console.log(error); callback(error); }); } 这(崩溃)预期的行为或mongoose应通过callback返回一个错误,而不是崩溃? 这是我用相同的代码保存第二个文档时得到的错误: [..path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:245 throw message; ^ TypeError: Cannot read property '0' of undefined at […path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/core.js:114:55 at […path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1132:7 at […path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1846:9 […]

在Mongoose中禁用types检查

有没有办法在保存时禁用Mongoose检查types? 我正在将一堆文档转换为更新的格式,因此对于我来说types检查并不是非常重要的(在运行转换脚本之后数据将全部以正确的格式/位置)。 有任何想法吗? 我想过在各种模式中禁用strict选项,但似乎是在架构中没有定义的字段,而不是禁用types检查。

麻烦与Mongoose和Schema.Types.Mixed

我试图有一个完全混合的模型,但不能真正得到它的工作,这里是完整的JavaScript: var mongoose = require('mongoose'), Schema = mongoose.Schema, async = require('async'); mongoose.connect('mongodb://localhost/whatever'); var SomeDocument = mongoose.model('SomeDocument', new Schema({ any: Schema.Types.Mixed }) ); var AnotherDocument = mongoose.model('AnotherDocument', new Schema({ any: Schema.Types.Mixed }, { strict: false } ) ); async.waterfall([ function(cb) { var saveThis = {lets: "have", some: "fun"}; console.log("Trying to save:", saveThis); SomeDocument.create(saveThis, function(err, savedDoc) { […]

TypeError:Object#<Promise>没有方法forEach'mongodb

我正尝试在Visual Studio中使用MongoDB和nodejs将文档从一个集合复制到另一个集合。 这是我想要做的: var newcollection = db.get('mynewdata'); var oldcollection = db.get('myusercollection'); var userName = req.body.username; oldcollection.find({ "username" : userName }).forEach(function (docs) { newcollection.insert(docs); }); 在Mongo网站上,它说,collection.find()应该返回一个应该能够使用forEach()方法的游标。 但是,它并没有返回游标对象,forEach似乎没有为返回的内容定义。 我从主题行得到的错误说: TypeError: Object #<Promise> has no method 'forEach' 任何想法,为什么它给了我这个错误?

如何使用dot(。)通过Mongoose在Node.js中查询以及如何添加一个空数组

我有以下架构: var userSchema = new Schema({ userID: Number, userName: String, userEmail: String, teams:Array, socialMedias: { fbUID: String, googleUID: String, twitter: String } }); 首先,我如何添加一个空数组? 这是我正在做的以下方式吗? teams:{}, 其次,我正在尝试在我的Node.js中使用Mongoose进行查询,但在点('。')中出现错误: 这是我正在保存的文件: var user = new users({ userID: id, //give the id of the next user in Dbase userName: userName, userEmail: 'userEmail', teams:{}, socialMedias: [{socialMediaType: socialMediaID}] }); 其中userName,socialMediaType和socialMediaID是函数的参数。 所以,我添加这个文档后,我试图做下面的查询: […]

如何使用MongoDB / Mongoose.js查询OR / AND状况?

我如何使用Node.js / JavaScript,MongoDB / Mongoosejs来创build一个查询来input一个或类似的查询条件,并接收一个或多个结果? 像下面这样: User.find({_id: idA OR idB}, function (err, users) { console.log(users[0]); // Is user with idA console.log(users[1]); // Is user with idB } 我怎样才能做到这一点?