Tag: mongodb

Mongodb:在指定的时间之间获取文档,而不考虑date

假设Mongodb数据库中的示例文档如下所示: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } { "date" : ISODate("2015-11-30T15:24:00.251Z") } { "date" : ISODate("2012-01-10T18:36:00.101Z") } 预期: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } Iam感兴趣的是查找“date”字段在04:15和07:40之间的文件,而不pipedate,月份和年份。 间接查询必须匹配date字段中的任何“YYYY-MM-DDT”。 我的方法是,从节点查询所有文档中的所有文档,然后查询匹配查询的每个文档,比较文档的“date”字段与“yyyy-MM-DDT”+“required_time”(“YYYY-通过使用moment.js模块将MM-DD从每个文档的“date字段”中复制,以便通过转换为moment()并获取月份,date和年份来进行比较。 有没有什么方法可以直接得到相同的结果? 注意:我正在使用nodejs连接到mongodb 这个问题是基于Mongodb:基于ISODate格式的查询 。

为什么我不能在mongoose/蒙戈德增量?

我试图增加,但结果总是显示它是未定义的。 var mongoose = require('mongoose'); var TestSchema = mongoose.Schema({ total: Number }); var Test = mongoose.model('Test', TestSchema); var arr = [2,4,5,6,7,8]; var test = new Test(); arr.forEach(function(item) { console.log(item); test.total += item; }); console.log(test.total); console.log(test.total)将打印输出未定义。

Mongoose将文档作为基于键的数组数组来获取

我真的不知道如何构思这个问题,但是我拥有的是mongoose中的以下模式 new Schema({ gatewayId: { type: String, index: true }, timestamp: { type: Date, index: true }, curr_property:Number, curr_property_cost:Number, day_property:Number, day_property_cost: Number, curr_solar_generating: Number, curr_solar_export:Number, day_solar_generated:Number, day_solar_export:Number, curr_chan1:Number, curr_chan2:Number, curr_chan3:Number, day_chan1:Number, day_chan2:Number, day_chan3:Number },{ collection: 'owlelecmonitor' }); 我希望能够查询集合中的所有文档,但是数据应按以下格式排列在数组中 [ [{ gatewayId: 1, timestamp: time …. }, { gatewayId: 1, timestamp: time2 …. }], [{ gatewayId: […]

节点的JS MongoDB不保存

我是新的节点JS,所以我可能会错过一些相当明显的东西。 我最近一直试图用mongoose把一些数据保存到数据库中,但是我一直没有成功。 尽pipe服务器告诉我它被保存,但是我的数据库中没有任何数据的跟踪。 app.js(靠近底部的代码的相关部分) /* REQUIRES */ var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var ejs = require('ejs'); var moment = require('moment'); var app = express(); var router = express.Router(); var port = 80; moment().format(); /* MONGOOSE CONNECT & MODEL */ mongoose.connect('mongodb://127.0.0.1:27017/giveaway'); var Giveaway = require('./models/giveaway'); var Entry = require('./models/entry'); […]

Mongodb:基于ISODate格式的时间查询。 我的查询有什么问题?

假设Mongodb数据库中的示例文档如下所示: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } { "date" : ISODate("2015-11-30T15:24:00.251Z") } { "date" : ISODate("2012-01-10T18:36:00.101Z") } 预期: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } 我试了下面的查询: collection.find({"$and": [{ "date" : { "$gt": [ {"$hour": "$date"}, 4] } }, {"date" :{ "$lt": [ {"$hour": "$date"}, 8] } } ]}); […]

Mongoose创build包含对象数组的logging(Cast to Array失败)

尝试什么似乎是一个相当简单的创build使用对象: var toSave = { person_number: "rjq8900", person_name: "john smith", cars: [{ car_id: "fordTaurus1994", make: "ford", model: "taurus", purchased: "31-Aug-15", price: "1650" }] } 进入模式: var People = new Schema({ person_number: String, person_name: String, cars:[{ car_id: String, make: String, model: String, purchased: Date, price: Number }] }) 通过: People.create(toSave, function(e, doc){ console.log(e); }); 我得到: errors:{ […]

检索基于数据的datemongodb

我已经创build了一个应用程序与2个模型的比赛指的是一个特定的联赛。 从这我不想做一个查询来获得即将到来的比赛所有的联赛。 我该怎么做,或者我应该改变模型的结构? 我试图做一个查询,但是这返回所有即将到来的比赛,而不是与即将到来的比赛的联赛 楷模 var mongoose = require('mongoose'), Schema = mongoose.Schema; var leagueSchema = new Schema({ _id: Number, name: String, league: Number }); var matchSchema = new Schema({ _id: Number, league: { type: Number, ref: 'league' }, date: Date, homeName: String, awayName: String }); var League = mongoose.model('leagues', leagueSchema); var Match = mongoose.model('matches', matchSchema); […]

如何以mongoose的数组格式填充数值

我有一个模型结构如下,其中舞台从另一个模型中检索 var stageSchema = new Schema({ Name: String, Stage: { type: Schema.ObjectId, ref: 'StageName', } }, { collection: 'StageList' }); 我写了查询来检索使用mongoose的数据,如下所示: exports.findall = function(req, res) { stage.find().populate({path:'Stage',select:'-_id'}).lean().exec(function(err, value1) { res.send(value1); }); }; 它显示如下所示的结果 [{_id:213465465465465, Name: "AAA", Stage: {Value: "Stage1"}},{_id:213465465465465, Name: "BBB", Stage: {Value: "Stage2"}}] 但是我希望舞台是没有“价值”键的数组格式,如下所示: [{_id:213465465465465, Name: "AAA", Stage: ["Stage1"]},{_id:213465465465465, Name: "BBB", Stage: ["Stage2"]}] 请帮助解决这个问题。 […]

是否有必要closuresnodejs中的mongodb连接?

我是新的nodejs和mongodb。 在MongoDB本地驱动程序网站,他们在每个请求后closures连接,但似乎是在高stream量网站非常缓慢和问题。 我只是很想知道是否有必要这样做,或者我可以声明一个全局variables,并像这样的DB引用: var mongodbClient = require('mongodb').MongoClient; var db; function connect() { mongodbClient.connect('connection string', function (err, mdb) { db = mdb; }); } connect(); function insert(query, collection, fn) { db.collection(collection) .insert(query, function (er, da) { fn(er, da); }); } function find(query, collection, fn) { db.collection(collection) .find(query).toArray(function (er, da) { fn(er, da); }); } 我不想用mongoose,更喜欢学习和理解发生了什么。

使用embedded式文档列表还是使用ObjectId列表有什么不同?

在Mongoose文档中,我遇到了这个例子: var Comments = new Schema({ title : String , body : String , date : Date }); var BlogPost = new Schema({ author : ObjectId , title : String , body : String , date : Date , comments : [Comments] , meta : { votes : Number , favs : Number } }); […]