Tag: mongodb

在Mongoose中汇总结果

我在澳大利亚有800多家不同的酒吧,俱乐部和餐厅的数据库。 我想为我的网站build立一个链接列表,统计不同郊区和主要类别的不同场地的数量。 喜欢这个: 餐厅,鲍恩山(15) 餐厅,Dawes Point(6) 悉尼俱乐部(138) 我可以通过首先获得所有的场地来做到这一点。 然后运行一个Venue.distinct('details.location.suburb')来获得所有独特的郊区。 从这里我可以运行后续的查询来计算该特定郊区和类别的场馆数量。 这将是很多电话。 还有更好的方法吗? Mongo汇总框架可以在这里帮助吗? 在单个查询中这似乎是不可能的。 这是场地模型: { "name" : "Johnny's Bar & Grill", "meta" : { "category" : { "all" : [ "restaurant", "bar" ], "primary" : "restaurant" } }, "details" : { "location" : { "streetNumber" : "180", "streetName" : "abbotsford road", "suburb" : "bowen […]

在mongoose中定义数组的首选方法是什么?

在mongoose模式中定义数组的首选方法是什么? 这是我find的两个,但我无法决定哪一个是最好用的。 var DocumentSchema = new mongoose.Schema({ wayOne: [ { type: String } ], wayTwo: { type: [String] }, }); 我更喜欢第二种方式,因为我可以做类似的事情 wayTwo: { type: [String], enum: ['one', 'two', 'three'], default: [] } 我不知道如何用第一种方法做到这一点。 总之,我正在看一些旧的代码,我没有写,看到了两种使用方式,所以我想知道我有什么需要注意的方式之一,或者如果这将是安全的标准化转换一切以最好的方式。

如何使用Mongoose将多个参考文件保存到MongoDB中的其他文档?

我正在试图找出如何使用Mongoose在MongoDB中保存多个对其他文档的引用。 将一个引用保存到其他文档并不是什么大事,但是当您要将多个引用保存到其他文档并在稍后填充时,它会变得很复杂。 让我们看看我有什么: var mongoose = require('mongoose'), Schema = mongoose.Schema; var Book = Schema({ title: String, reviews: [{ type: Schema.Types.ObjectId, ref: 'Review' }] }); var Review = Schema({ body: String }); var Book = mongoose.model('Book', bookSchema); var Review = mongoose.model('Book', reviewSchema); var reviewItem = new Review({body: "review content"}); Book.find({}).exec(function(err, collection) { if(collection.length === 0) { […]

无法启动捆绑meteor应用程序:“错误:无法连接到”

我试图捆绑和运行Meteor(v1.0)作为一个原始的Node项目。 以下是我采取的步骤: $ cd app_dir $ meteor build build_dir 。 $ cd build_dir/programs/server $ npm install $ cd build_dir $ PORT=3000 MONGO_URL=mongodb://127.0.0.1:3001/meteor node main.js 在这一点上,我得到一个错误: Exception in callback of async function: Error: failed to connect to [127.0.0.1:3001] at null.<anonymous> (/Users/byrnef87/Sites/lookback-site/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/server.js:536:74) at emit (events.js:106:17) at null.<anonymous> (/Users/byrnef87/Sites/lookback-site/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:150:15) at emit (events.js:98:17) at Socket.<anonymous> (/Users/byrnef87/Sites/lookback-site/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/connection.js:516:10) at Socket.emit (events.js:95:17) […]

如何加快MongoDB计数()查询?

我的collections描述如下: { "_id" : ObjectId("5474af69d4b28042fb63b856"), "name" : "XXXX", "action" : "accept", "source" : "127.0.0.1", "srcport" : "80", "destination" : "192.168.0.13", "dstport" : "53213", "service" : "443", "service_id" : "https", "unixtime" : NumberLong("1412774569000"), "segment" : "MySegment", "direction" : "INCOMING", "location" : "US" } 我目前在我的collections中有〜5.5mio条目,基本查询总是: collection.count({"action":"2_different_action_types", "direction":"3_different_directions", "unixtime": {"$gte": 1412774000000, "$lte": 1412774900000}}) 行动,方向和unixtime总是存在于我的查询中,但它们的值是dynamic的。 可选(也是dynamic值)参数是: 位置 分割 service_id为 […]

在Mongoose中使用ObjectID的数据模型参考

我有两个mongoose模型的用户和请求。 一个用户可以有多个请求。 为了链接这两个数据模型,我在Request模型中引用用户的objectID。 但是,当我试图获取一个特定的用户ID的所有请求,我没有得到任何结果。 用户 var UserSchema = new Schema({ name: String, username: String }); module.exports = mongoose.model('User', UserSchema); 要求 var RequestSchema = new Schema({ type: String, user_id: { type : mongoose.Schema.Types.ObjectId, ref: 'User'} }); module.exports = mongoose.model('Request', RequestSchema); 以下是根据URL中传递的用户标识提取请求的示例代码 exports.getRequests = function (req, res, next) { var userId = req.params.id; console.log('USER ID'+userId); Request.findOne({'user_id': 'kenan'}, […]

Meteor MongoDB集合无法访问meteor发布

我已经将数据导入到meteormongodb数据库。 这是我所做的:随着meteor应用程序运行通过 $ yourMeteorAppDirmeteor 在一个terminal和另一个terminal启动mongodb运行通过 $ mongod 启动另一个terminal,运行以下命令,将数据导入meteor应用程序的数据库: $ mongoimport -h localhost:3001 -d meteor -c collectionNameHere <jsonFileNameHere.json 但是,从JSON文件导入文件后,我发现该集合没有被我的Meteor应用程序访问。 具体来说,当我试图发布collections: Meteor.publish('collectionNameHere', function() {return collectionNameHere.find(); }); 我看到: 从子ci9tk9AsFeyngHWwE引用exception:collectionNameHere未定义I20141203-07:15:18.436(-5)? 在null._handler(app / server / collectionName.js:9:14)I20141203-07:15:18.436(-5)? 在maybeAuditArgumentChecks(packages / ddp / livedata_server.js:1599)I20141203-07:15:18.436(-5)? 在_.extend._runHandler(packages / ddp / livedata_server.js:943)I20141203-07:15:18.437(-5)? at _.extend._startSubscription(packages / ddp / livedata_server.js:769)I20141203-07:15:18.437(-5)? at _.extend.protocol_handlers.sub(packages / ddp / livedata_server.js:582)I20141203-07:15:18.437(-5)? 在packages / […]

如何从Mongoose中删除已定义的模式?

我正在使用Node.js和mongoose与MongoDB接口。 我目前的实现在运行时dynamic创buildMongoose模式。 这些模式然后被用来创build存储在MongoDB各自集合中的对象。 在某些时候,可能会调用一个删除函数(express express endpoint),然后删除这些集合中的一个或多个,并从代码中引用模式引用(将其设置为undefined)。 但是,当我重新创build这些模式之一时,mongoose抱怨说旧的模式已经存在了! 有任何想法吗?

节点应用程序不连接到mongodb数据库

我试图编写一个应用程序,我一直在研究我的问题…很简单:mongodb数据库不连接: npm start nodemon server.js 7 Dec 11:00:59 – [nodemon] v1.2.1 7 Dec 11:00:59 – [nodemon] to restart at any time, enter `rs` 7 Dec 11:00:59 – [nodemon] watching: *.* 7 Dec 11:00:59 – [nodemon] starting `node server.js` js-bson: Failed to load c++ bson extension, using pure JS version running on 8080: 但是我的mongoose连接日志不显示。 var dataBase […]

将数据从一个mongodb数据库迁移到另一个使用mongoose

我不得不从一个数据库迁移大约19k个帐户到另一个数据库,并且改变他们的格式等。想知道是否有人有一个坚实的方法来做到这一点,也许有一个简单的node.js脚本。 我在网上search了一个例子,但一直没能find任何东西。