Tag: mongodb

从Mongoose查询返回的内容找不到匹配项?

阅读Mongoose文档,我有点困惑。 如果我在与集合中没有任何文档匹配的mongoose中运行查询,callback函数callback(err, results)的err和results的值是什么? 我只是不知道mongoose认为是什么“错误”。 作为一个math家,返回空集(即results数组为空)似乎是完全有效的,不应该是一个“错误” – 查询执行得很好,只是没有匹配的文件。 另一方面,有人可能认为这是一个“错误”。 从mongoose的文档,无论是: err = null, results = [] err = null, results = null err =错误文档, results = null

mongoosesorting聚合的结果

解决这个mongodb(mongoose)问题我有很多困难。 有这个架构'推荐'(用户名,roomId,ll和date),其集合包含用户的build议。 我需要得到最推荐的房间列表(由roomId)。 下面是模式和我尝试过的mongoose查询解决scheme。 var recommendSchema = mongoose.Schema({ username: String, roomId: String, ll: { type: { type: String }, coordinates: [ ] }, date: Date }) recommendSchema.index({ ll: '2dsphere' }); var Recommend = mongoose.model('Recommend', recommendSchema); Recommend.aggregate( { $group: { _id: '$roomId', recommendCount: { $sum: 1 } } }, function (err, res) { if (err) return […]

插入和查询date与MongoDB和Nodejs

我需要一些帮助在mongodb和nodejs中按date查找logging。 我把这个date添加到一个刮脚本的json对象中,如下所示: jsonObj.last_updated = new Date(); 这个对象被插入到mongodb中。 我可以看到如下: "last_updated" : "2014-01-22T14:56:59.301Z" 然后在我的nodejs脚本中,我做了一个findOne(): var jObj = JSON.parse(line.toString()); collection.findOne(jObj,function(err, doc) { if (doc){ console.log(doc._id); } else { console.log('not found'); } }); 该对象未find。 如果我从对象中删除last_updated字段,那么它肯定是问题所在。 如果我把这个领域隔离如下: collection.findOne({last_updated: '2014-01-22T14:56:59.301Z'},function(err, doc) { if (doc){ console.log(doc._id); } else { console.log('not found'); } }); 没有东西可以回来 请问我做错了什么? 谢谢。

如何使用nodejsstream式传输MongoDB查询结果?

我一直在寻找一个如何将一个MongoDB查询的结果stream到一个nodejs客户端的例子。 到目前为止,我发现的所有解决scheme似乎都是一次读取查询结果,然后将结果发送回服务器。 相反,我会(显然)喜欢提供一个callback查询方法,并有MongoDB调用时,结果集的下一个块是可用的。 我一直在看mongoose – 我应该使用不同的驱动程序? 一月

在保存mongoose时用ObjectId引用文档

我有以下模式: // ingredient var ingredSchema = new Schema({ name: String, cost: Number }); // order var orderSchema = new Schema({ cusName: String, ingredients: [{type: Schema.Types.ObjectId, ref: 'Ingredient'}] }); // create model var Ingredient = mongoose.model('Ingredient', ingredSchema); var Order = mongoose.model('Order', orderSchema); 我已经在一个收集ingredients保存了一堆成分,并有一个用户界面,用户可以select一套汉堡的配料。 然后我尝试在同样的数据库burgers内保存另一个集合orders汉堡的orders ,如下所示: // get order info from the form var newOrder = new […]

mongo可以插入数组数据吗?

我有这样的mongo文件。 { "_id" : ObjectId("50b429ba0e27b508d854483e"), "array" : [ { "id" : "1", "letter" : "a" }, { "id" : "2", "letter" : "b" } ], "tester" : "tom" } 我希望能够插入和更新一个单一的mongo命令的array ,而不是在find()使用条件,然后根据对象的存在运行insert()和update() 。 id是我想成为select器的项目。 所以如果我用这个更新数组: { "id" : "2", "letter" : "c" } 我必须使用$set语句 db.soup.update({ "tester":"tom", 'array.id': '2' }, { $set: { 'array.$.letter': 'c' } }) […]

mongoose – 通过标准查找子文档

我刚刚陷入这个问题。 我有两个mongoose模式: var childrenSchema = mongoose.Schema({ name: { type: String }, age: { type: Number, min: 0 } }); var parentSchema = mongoose.Schema({ name : { type: String }, children: [childrenSchema] }); 问题是,如何从每个父文档中获取所有子文档(在本例中为childrenSchema对象)? 假设我有一些数据: var parents = [ { name: "John Smith", children: [ { name: "Peter", age: 2 }, { name: "Margaret", age: 20 […]

Mongoose:CastError:强制转换为ObjectId的path“_id”的值为“”

我对node.js是新手,所以我有一种感觉,这将是我忽略的一些愚蠢的东西,但是我一直无法find解决我的问题的答案。 我想要做的是创build一个path,将创build一个新的子对象,将其添加到父项的子数组,然后将子对象返回给请求者。 我遇到的问题是,如果我将stringID传递给findById,节点崩溃 TypeError:Object {}没有方法'cast' 如果我尝试传入一个ObjectId,我会得到 CastError:在path“_id”上投射到ObjectId的值“[object Object]”失败 这是我的代码的一个粗略的轮廓: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; //Have also tried Schema.Types.ObjectId, mongoose.ObjectId mongoose.connect('mongodb://user:password@server:port/database'); app.get('/myClass/:Id/childClass/create', function(request, result) { var id = new ObjectId(request.params.Id); MyClass.findById(id).exec( function(err, myClass) { if (err || !myClass) { result.send("error: " + err + "<br>" + JSON.stringify(id) || ("object […]

如何使用Node.js中的承诺MongoDB?

我一直在试图发现如何在Node.js中使用MongoDB,在文档中,似乎build议使用callback。 现在,我知道这只是一个偏好问题,但我更喜欢使用承诺。 问题是我没有find如何使用它们与MongoDB。 事实上,我已经尝试了以下内容: var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost:27017/example'; MongoClient.connect(url).then(function (err, db) { console.log(db); }); 结果是undefined 。 在这种情况下,似乎并不是这样做的。 有没有办法使用mongo数据库内的节点与承诺,而不是callback?

mongoose填充embedded式

我使用Mongoose.js并不能解决3级层次结构文件的问题。 有两种方法来做到这一点。 第一 – 没有参考。 C = new Schema({ 'title': String, }); B = new Schema({ 'title': String, 'c': [C] }); A = new Schema({ 'title': String, 'b': [B] }); 我需要显示Clogging。 我怎么能填充/find它,只知道C的_id? 我曾尝试使用: A.findOne({'bc_id': req.params.c_id}, function(err, a){ console.log(a); }); 但是我不知道如何从一个对象只得到我需要的对象。 其次,如果使用参考: C = new Schema({ 'title': String, }); B = new Schema({ 'title': String, 'c': […]