Tag: mongodb

mongo查询 – 属性是否存在?

在一个集合文档中,有一个“sub”属性是一个包含一个或多个属性的对象。 集合看起来像:(我已经删除了无关的其他属性) "properties": { "source": { "a/name": 12837, "a/different/name": 76129 } } 我需要在集合中find/ name和/ different / name是variables。 variablesembedded正斜线,因为它们是mqtt主题名称,以防万一您想知道。 (的node.js) 我试过了: collection.find({'properties.source[variable containing name]': {$exists: true}}).toArray(function… 不工作,没有任何返回 我也试着设置一个查询string,如下所示: var q = util.format('properties.source.%s', variable containing name); collection.find({q: {$exists: true}}).toArray(function… 查询错误失败 如果他们是问题,我可以用其他字符replace前斜线,但是我怀疑他们没问题。 我试图逃脱前斜线,这没有什么区别。 有什么build议么?

Mongoose不会在Mocha中正确删除数据库和closures连接

我有两个简单的testing,但其中一个testing通过,但不是另一个,因为架构再次编译。 OverwriteModelError:编译后无法覆盖CheckStaging模型。 这是我的一个testing,因为它正在运行第一。 var mongoose = require('mongoose'), StagingManager = require('../lib/staging_manager'), expect = require('expect.js'); describe('Staging manager', function() { var StagingModel; beforeEach(function(done) { mongoose.connect('mongodb://localhost/BTest'); StagingModel = new StagingManager(mongoose).getStaging(); done(); }); describe('find one', function() { it('should insert to database', function(done) { // Do some test which works fine }); }); afterEach(function (done) { mongoose.connection.db.dropDatabase(function () { mongoose.connection.close(function () […]

meteor上次在MongoDB中执行查询?

meteor蒙古语和Mongodb查询是一样的。 我正在使用外部Mongodb。 所以我需要debugging我的查询。 他们有没有办法在Mongo中查找最后执行的查询?

如何将DBF文件转换为JSON,反之亦然?

我想将DBF文件转换为JSON,并将其存储在我的MongoDB数据库,希望我的JSON对象被转换为DBF文件。 我尝试使用Node-DBF 。 有没有其他的NPM可以用来parsingDBF并在Node.js中转换成JSON 。

Mongoose。查找string参数

我有一个函数使用mongoose来查询我的数据库。 连接已经起作用。 但是,如果我不使用实际的string,而是stringvariables,那么.find返回一个未定义的对象(即没有find任何东西)。 这里是代码: function getUser(obj, callback){ console.log("obj.key: " + obj.key[0].toString() + ":" + obj.value[0].toString()); var first = "name.first"; console.log("first: " + first); var second = "nicholas"; console.log("second: " + second); User.findOne({first:second}, 'name telephone address1 address2 city state zip country', function(err, user){//nothing can be found when not directly using a string!!! console.log("got this user: " […]

弹性search映射与蒙哥连接器在帆船上丢失

我正在开发一个使用MongoDB,Sails JS和ElasticSearch的应用程序。 MongoDB用于编写为应用程序检索的logging。 ElasticSearch用于search文本和地理位置的距离search等 我正在使用mongo-connector来保持我的数据从MongoDB同步到ElasticSearch。 问题是,我不能维护我的geo_point映射的字段,存储纬度和经度或父母/孩子或分析器等。每次帆服务器被取消,我看到在elasticsearch日志中所有的映射被删除,创build和更新,并且我失去了geo_point的映射,这个映射是在每个东西都启动并运行之后通过REST手工创build的,或者即使我已经在sails js的引导时创build了映射(作为解决方法)。 我也试图创build一个映射文件,并将其放置在elasticsearch / config / mappings / index / mymapping.json中,但我得到一个错误 Caused by: org.elasticsearch.index.mapper.MapperParsingException: Root type mapping not empty after parsing! Remaining fields: … 在这里,我尝试了所有的组合,使这项工作,但没有成功例如 {"mappings" : { "locations" : { "dynamic": "false", "properties":{ "location": { "type": "geo_point" } } } } } 还尝试使用模板来创build映射,但在此之后,mongo连接器踢入并覆盖映射。 截至目前,我只能做这个工作是停止mongo连接器,删除oplog.timestamp文件,启动sails服务器(这里在引导时间,我删除并重新创build该文档的映射),然后启动mongo连接器。 但是如果我们放弃一步,就会造成事故。 我在做任何错误的事情,还是有一个更好的方法来同步mongodb到elasticsearch,而不会丢失自定义映射或替代mongo连接器。

节点错误:尝试访问路由/设置时连接ETIMEDOUT

我正在使用NodeJs和JSON Web令牌进行身份validation。 我创build了我的server.js , config.js和用户模型 。 我的应用程序运行良好localhost:3333 (我的8080从来没有工作) 。 然后我添加了/setuppath来创build一个用户。 去/安装应用程序看起来像挂了一段时间,然后它抛出这个错误: 我的完整的server.js文件 // require packages // =================================================================== var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var morgan = require('morgan'); var mongoose = require('mongoose'); var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens var config = require('./config'); // get […]

如何使用mongoose使用MongoDB findOne()

我有使用MongoDB findOne()函数与mongoose的麻烦。 调节器 exports.show = function (req, res) { Fahrt.load(req.params.fahrtenId, function (err, fahrt) { res.jsonp(fahrt); }); }; 模型 FahrtSchema.statics = { load: function (id, cb) { this.findOne({ _id: id } ).exec(cb); }}; 路线 router.get('/:fahrtId', fahrtenController.show); app.js app.use('/fahrten', fahrten); 当我使用Postman查询具有特定ID的“Fahrt”对象时,我会返回“null”。 当我通过Mongo Console直接search时 db.Fahrt.findOne({"_id": ObjectId("5562ca06a14c4924090ba5ff")}) 我得到一个现有的对象,一切都如预期。 但为什么不当我通过mongoose查询?

MongoDB findOne查询不返回结果或未定义

我是新来的node.js和mongo,我试图使用findOne()从我的数据库的“测验”集合检索一个对象,以便我可以检查其属性。 我知道这个对象是存在的,因为在Mongo shell中,findOne()调用给了我这个: > db.quizzes.findOne({ quiz_id:1 }) { "_id" : ObjectId("5564b0bf28b816e2462b6a1a"), "quiz_id" : 1 } 在我的路线/ index.js,我有这个: router.post('/submitanswer', function(req, res) { var db = req.db; var quizCollection = db.get('quizzes'); var quiz = quizCollection.findOne({ quiz_id: 1 }); } 一个console.log(quizCollection)给出: { manager: { driver: { _construct_args: [], _native: [Object], _emitter: [Object], _state: 2, _connect_args: [Object] }, helper: […]

在包含对象数组的mongoose中过滤子文档

我试图返回给定用户的评级列表,按类别过滤。 var UserSchema = new Schema({ … ratings: [{ item: { type: Schema.Types.ObjectId, ref: 'Items' }, category: String, rating: Number }] 如果我做了以下,我只得到这个类别的第一个评级: var query = User.findOne(userId, 'ratings'); query.select({ 'ratings': { $elemMatch: { 'category': req.query.category }}}); 以下也只返回第一个评价: var query = User.find(); query.where({'_id': userId, 'ratings.category': req.query.category}); query.select({ 'ratings.$': 1 }); 我能够汇总正确的结果与以下,但是,我不认为这将工作,因为我不能在聚合后填充。 var query = User.aggregate( { $match: […]