Articles of mongodb

编辑3级mongo数据

我找不到第二级以上编辑嵌套数据的方法。 我有下一个模型结构: var Category = new Schema({ name: String, url: String, id: String }); var Subgroup = new Schema({ name: String, url: String, id: String, categories: [Category] }); var Group = new Schema({ name: String, url: { type: String, default: '' }, subgroups: [Subgroup] }); module.exports = mongoose.model('group', Group); 我需要通过组模型编辑某个类别。 我尝试所有可能的变化与嵌套数组工作,但没有结果。 Group.findOneAndUpdate({ _id: req.params.groupId, "subgroups.categories._id": […]

按时间search – MongoDB / NodeJS

我有一个文件,有以下时间: "time" : ISODate("2013-12-31T03:00:00Z") 我目前正在尝试使用带有Node.JS驱动程序的MongoDB查询来查找此文档。 var time = new Date(2013,11,31,3,0,0,0); 这个date打印出来如下使用console.log() Tue Dec 31 2013 03:00:00 GMT-0500 (EST) 当我尝试使用标准的collection.findOne(我肯定查询本身不是问题,而不是时间戳)find这个文档时,它找不到文档。 Mongo shell显示文件存在。 我如何格式化我的时间不正确? 编辑:我也会在查询中添加。 collection.findOne( { "time" : time}, {"_id" : 0}, function(err, items){ if (err){ throw err; } console.log(err); console.log(items); res.send(items); });

通过本地networking通过域名而不是IP地址连接到数据库时是否有大量开销?

通过本地networking通过域名而不是IP地址连接到数据库时是否有大量开销? 我有一个应用程序服务器将连接到一个单独的实例上运行的mongodb服务器,但是相同的本地networking。 DNS查询是否有大量开销? 例如: [ app ] – 1.1.1.1:27017 – > [ Mongo ] VS [ app ] – mongo.example.com:27017 – > [ Mongo ] 编辑 通常认为是使用IP地址而不是域名的最佳做法? 更多信息: DNS提供商: Cloudflare 主持: 数字海洋 数据库: MongoDB 数据库服务器:Ubuntu 13.10 应用程序正在运行: NodeJS 谢谢!

MongoDB – 将文档转换为其他文档并使用Nodejs进行更新

我计划将MongoDB NoSQL数据库用于video游戏,但是我想知道一些我不太清楚的东西,到目前为止我还没有find答案。 我明白,可以将文档实例(例如汽车)存储到另一个文档实例(用户)中,但是这是如何工作的? 因为如果它是一个有价值的拷贝,如果我更新我的汽车,用户将有一辆不是最新的汽车! 所以我想这是一个参考的副本。 或者,也许它不是一个副本,而是直接的某种奇怪的链接,比如我们用ID字段来处理SGBD数据库。 但是,另一件事,如果我更新我的模式(我肯定),新的字段或旧的旧字段将不会在现有的数据更新…看起来这是一个知道的问题,有一些解决scheme,你有没有解释如何处理这个问题的好链接? 我只是想在这里,我的数据库没有写,我想作出关于devise的最佳select。 我以前从来没有使用过NoSQL的东西,我试图去devise它,但是我仍然有很多被SGBD DB误解和“糟糕”的实践。 顺便说一句,MongoDb是一个安全漏洞(默认情况下没有密码等),你有链接来保护与mongoDb的数据库? 谢谢。

mongoose聚集date范围

我正在尝试mongoose聚集。 我想获得date范围内的字段的总和。 http://mongoosejs.com/docs/api.html#model_Model.aggregate mymodel.aggregate({$match:{date:{$gte: fromDate, $lt: toDate}}}, {$project:{_id:0,date:1, count:1}}, {$group:{'_id':0,count:"$count"}}).exec(function(err,data){ if(err){ console.log('Error Fetching model'); console.log(err); } callback(false, data); }); 这不起作用。 { [MongoError: exception: the group aggregate field 'count' must be defined as an expression inside an object] name: 'MongoError', errmsg: 'exception: the group aggregate field \'count\' must be defined as an expression inside an object', […]

MongoDB(Mongoose)如何使用$ elemMatch返回所有文档字段

根据MongoDB文档( http://docs.mongodb.org/manual/reference/operator/projection/elemMatch/ ): { _id: 1, school: "school A", zipcode: 63109, students: [ { name: "john", school: 102, age: 10 }, { name: "jess", school: 102, age: 11 }, { name: "jeff", school: 108, age: 15 } ] } { _id: 2, school: "school B", zipcode: 63110, students: [ { name: "ajax", school: 100, age: […]

在下面的控制stream中使用响应之前,如何等待节点/快速应用程序中mongo findOne查询的响应

我是新来的节点,也是JavaScript的callback。 我试图检查一个帐户是否存在在mongo中,然后'保存',如果没有,并返回一个错误,如果是的话。 我目前正在试图找出我的快速应用程序之外。 这是我的.. var MongoClient = require('mongodb')。MongoClient; MongoClient.connect('mongodb://localhost:27017/main', function (err, db) { if(err) throw err; var query = { name : "www.website.com"} findOne(db, query, function (doc) { if(doc) { console.log('account exists'); } else { console.log('good to go'); } console.dir(doc); }); }); var findOne = function (db, query, callback) { db.collection('accounts').findOne(query, function (err, doc) { […]

在需要唯一索引时将多个文档插入到MongoDB中

我的collectionsP在phone领域有一个独特的索引: db.P.ensureIndex( { phone: 1 }, { unique: true, dropDups: true } ) db.P.insert( {phone:"555-1234"} ) 如果我插入一组文档,甚至一个文档有一个重复的键: db.P.insert( [{phone:"911"},{phone:"555-1234"}] ) > E11000 duplicate key error index: test.P.$phone_1 dup key: { : "555-1234" } 整个插入失败,并且没有插入有效的号码。 问题:如何进行批量插入,确保插入了有效的文档,并获取哪些插入失败的信息? 用于显示nodejs api代码的奖励点。

我可以使用按位运算符来请求Loopback模型吗?

Strongloop Loopback文档没有提到任何有关使用按位筛选器进行对象检索的内容。 例如在Loopback API文档中 : // Just an example of syntax, it does not do bitwise filter Inventory.find({where: {status: {gt: 4}}); 直接连接到MongoDB ,我可以这样做: // Select items with 3rd bit on in `status` field db.inventory.find({status: {$mod: [4, 0]}}); 我可以在Loopback模型接口后面做同样的事吗? 在MongoDB文档中,他们说$是条件可以做同样的事情,而更昂贵 : db.inventory.find( { $where: "this.qty % 4 == 0" } ) 我可以在回送中执行以下操作: Inventory.find({where: "this.qty % 4 […]

如何在nodejs mongodb中使用聚合之后更新数据

您好im新到nodejs和mongodb执行我的聚合命令后,我想要做的是放下聚合命令find的最低分数。这是我的代码: MongoClient.connect('mongodb://localhost:27017/school', function(err, db) { if(err) throw err; var students = db.collection("students"); students.aggregate( [ { "$unwind": "$scores" }, {"$group": { '_id':'$_id' , 'score': {'$min': "$scores.score" } } }],function(err, result){ if(err) throw err; for(var i=0; i<200; i++){ //console.log(result[i].score); updateStudents(result[i]._id,result[i].score); } }); function updateStudents(_id,score){ var query = {'_id':_id}; var operator = {'$unset' : {'scores.score' : score}}; var […]