Articles of mongodb

在更新Bower依赖项时冻结Mean.IO的NPM安装

我已经成功下载了MEAN堆栈并创build了一个新的应用程序。 但是,当我进入应用程序主pipe并运行“npm install”时,下载停在这一行: bootstrap#3.3.6 bower_components/bootstrap └── jquery#2.2.0 Updating Bower dependencies 在这里坐了一个多小时。 发生了什么事情,我该如何解决这个问题? 谢谢!

mongoose聚合方法不起作用

我有这些行: Score.find({gameId : gameId}).exec(function(err,obj){ console.log("find length : " + obj.length); }); Score.aggregate([ {$match: {gameId: gameId}} ], function (err, result) { console.log('result is : ' + JSON.stringify(result)); console.log('is there any error : ' + err); }); 这些线的输出是 result is : [] is there any error : null find length : 1 我不明白,为什么聚合的“匹配”方法不能按预期工作 – 查找所有匹配属性的文档。 如果文档确实存在并且确实存在,我将Score.find添加到相同的“body”中以查明。 PS: […]

Node + MongoDB – 错误:process.nextTick(function(){throw err;});

嗨我遇到以下错误,当我运行我的app.js. 无法解决问题。 有人能帮我吗 /Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/utils.js:98 process.nextTick(function() { throw err; }); ^ WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: instance.instancesmodels.$PublicDnsName_1 dup key: { : \"\" }","op":{"PublicDnsName":"","instanceId":"i-d9ff937a","reservationId":"r-60e814b6","name":"adhoc s1","region":"us-east-1b","status":"stopped","net_io":"","cpu_usage":"","_id":"56a9c6d1e86e8bff040644cb","isInUse":false,"__v":0}}) at Function.MongoError.create (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11) at toError (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/utils.js:114:22) at /Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/collection.js:597:23 at handleCallback (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/utils.js:96:12) at /Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/bulk/unordered.js:470:9 at handleCallback (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/utils.js:96:12) at resultHandler (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/lib/bulk/unordered.js:417:5) at /Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:780:13 at [object Object].Callbacks.emit (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3) at [object Object].messageHandler (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:249:23) at Socket.<anonymous> (/Applications/MAMP/htdocs/simplehacker/simplehacker-us/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:265:22) […]

为什么Mongodb更新工作,但mongoose不会?

当我查询monodb shell时,我能够更新文档。 这是我使用的mongodb命令: db.users.update({name:"bob"}, {$set: {email:"newEmail@gmail.com} }) 但是当我尝试用mongoose更新它时,它不起作用。 我在想什么? 这是mongoose的代码: //创build用户架构 var userSchema = mongoose.Schema({ name: String, email: String }, {collection: "users"}); //创build一个模型 var userModel = mongoose.model("userModel", userSchema); //更新文档 userModel.update({name:"bob"}, {$set: {email:"newEmail@gmail.com"}} );

根据Mongoose模式validation对象而不保存为新文档

我试图validation一些将被插入到一个新文档中的数据,但不是在很多其他事情需要发生之前。 所以我打算给静态方法添加一个函数,希望能够在模型模式中validation数组中的对象。 下面是代码: module.exports = Mongoose => { const Schema = Mongoose.Schema const peopleSchema = new Schema({ name: { type: Schema.Types.String, required: true, minlength: 3, maxlength: 25 }, age: Schema.Types.Number }) /** * Validate the settings of an array of people * * @param {array} people Array of people (objects) * @return {boolean} */ peopleSchema.statics.validatePeople […]

mongoose保存如果新的refs

如果你想知道这个线程中的问题有两个字:我试图完成一个mongoose函数findOrAdd():如果我正在search的ID不存在,我应该添加一个新的文档。 之后(这就是为什么我需要一些同步function),我需要做一个基于新的ObjectIds的查询。 这是我的Post Schema var com_post_schema = new Schema({ content: { type: String, required: true }, postedBy: [{ type: mongoose.Schema.Types.ObjectId, ref: 'com_user' }] }); 和我的用户架构 var com_user_schema = new Schema({ name: { type: String, required: true }, age: {type:Number} }); 所以一个post可以有多个作者。 我的问题:作者可以是一个现有的用户(在bootstrap-tokenfield中select)或新用户,请参阅此json示例: { "content":"post content", "postedBy":[ { "_id":"56a60a972b70225014753d1a", "name":"Paul", "age":20, "__v":0, "value":"Paul", "label":"Paul" }, { […]

有没有办法改变mongoDB结构(从嵌套/embedded文档到对象引用列表),同时保持数据?

我有一个mongoDB数据库,由nodejs通过mongoose使用,它涉及嵌套/embedded式文档,如下所示: "people" : [ {"name" : "james", "_id": ObjectId("randomrandom1")}, {"name" : "arianna","_id": ObjectId("randomrandom2")}, {"name" : "kyle","_id": ObjectId("randomrandom3")} ] 我需要改变结构,所以我有单独的“人”文件,人们将包含一个人的ObjectId的数组: "people" : [{type:mongoose.Schema.Types.ObjectId, ref: 'Person'}] 每个人的文件都会包含詹姆斯,阿里安娜和凯尔的信息 – 这样我就可以在他们需要的时候填充他们。 我需要在维护已经input的文档的同时更改数据库结构。 有什么办法可以做到这一点?

通过angularjs在mongodb中插入embedded的文件

我正尝试通过AngularJS在MongoDB中插入embedded式文档。 父文件已存在。 这是embedded式文件的架构 offers: [{ date: Date, offer: { id: mongoose.Schema.ObjectId, added: { type: Date, default: Date.now() }, displayName: String, creator: Number, //creator: { // type: mongoose.Schema.Types.ObjectId, // ref: 'User' //}, photo: String, description: String, additional: { name: String, data: String } }, linkedBy: Number }], 这是我的路由器 router.post('/',expositionController.create); router.get('/',expositionController.getAll); router.get('/:id',expositionController.get); router.put('/:id',expositionController.update); router.delete('/:id',expositionController.delete); router.post('/:id/offer',expositionController.createOffer); 在控制器中创build报价方法 exports.createOffer […]

在for循环完成后,快速渲染页面

我必须在for循环中反复运行mongoose查询,一旦完成,我想要显示一个页面。 示例代码如下。 由于mongooseasynchronous运行,我怎么才能使'命令/新'页面渲染只有'命令'数组已被填充在for循环? … … var commands = []; for (var index=0; index<ids.length; index++) { mongoose.model('Command').find({_id : ids[index]}, function (err, command){ // do some biz logic with the 'command' object // and add it to the 'commands' array commands[index] = command; }); } res.render('commands/new', { commands : commands }); … …

如何清理列表中的项目 – Mongoose

我正在与节点和mongoose创build一个用户帐户的网站。 我试图创build一个函数,从mongoose数据库中的embedded式数组中获取所有的追随者,然后呈现列出每个用户的页面。 我能够从数据库中获取原始数组值,例如["follower1", "follower2", "follower3"]这是我的代码为我的函数得到: router.get('/followers/:name', function(req, res, next) { User.findOne({username: req.params.name}, function(err, doc) { if (err) return next(err); console.log(doc.followers); res.render('followers', {title:"Followers", user:req.user, followersnew:doc.followers}); }); }); 在“追随者”页面,它显示followersnew ,作为“ follower1,follower2,follower3 ”但我希望能够列出每个用户。 我试过这个: {{#each followersnew}} <h3>{{followersnew}}</h3> {{/each}} 但是什么也没有显示出来..我被困在如何让每个用户,并干净地列出他们。 谢谢!