Tag: mongodb

mongoose升级后async不会在callback中返回数据

在我的项目中,我使用asynchronous查询到数据库,我有这段代码: async.auto({ one: function(callback){ getFriendsIds(userId, callback) }, two: ['one', function(callback, results){ getFriendsDetails(results.one, callback); }], final: ['one', 'two', function(callback, results) { res.status(200).send(results.two); return; }], }, function(err) { if (err) { sendError(res, err); return; } }); 返回friends的ID的方法如下所示: function getFriendsIds(userId, callback) { var query = User.findOne({_id: userId}); query.exec(function(err, user) { if(err) { callback(err); return; } return callback(null, user.friendsIds); […]

使用mongoose访问数组数组中的对象

我有以下结构,并试图删除参与者(league.division.participants)中的对象。 var participantSchema = new mongoose.Schema({ player: { type: mongoose.Schema.Types.ObjectId, ref: 'Player' }, record: { type: mongoose.Schema.Types.ObjectId, ref: 'ParticipantRecord' }, events: [ { type: mongoose.Schema.Types.ObjectId, ref: 'Event' } ] }); var divisionSchema = new mongoose.Schema({ name: String, participants: [ participantSchema ] }); var leagueSchema = new mongoose.Schema({ name: String, startDate: { type: Date, default: Date.now […]

Node.js从mongodb呈现json地图

我想从json地图显示数据来表示 这是我的代码 var b = det.map(function(h) { var soalid = h.id_soal; var idarray = [ ]; for (var i = 0; i < soalid.length; i++) { Soal.findOne({ _id: soalid[i] }, function (err, sol) { idarray.push(sol); console.log("ping:" + idarray); }); } res.render('ujian/viewDetail',{ujian: iduji, detail: det, soal: idarray, title: 'Lihat form ujian'}); }); 我试着运行控制台我从JSON获取数据,但没有显示在快递(networking)。 我有这个json文件: ping:{ _id: […]

带有可能的空参数的find()语句

我试图弄清楚Mongoose和MongoDB是如何工作的…我对他们来说真的很陌生,我似乎无法想象如何根据find语句返回值,其中查询中的某些给定参数可能是空 – 是否有一个属性,我可以为此设置或什么? 为了进一步解释,我有一个网页,有不同的input字段,用于search公司,但他们不是所有的强制性。 var Company = mongoose.model('Company'); Company.find({companyName: req.query.companyName, position: req.query.position, areaOfExpertise: req.query.areaOfExpertise, zip: req.query.zip, country: req.query.country}, function(err, docs) { res.json(docs); }); 通过填写网页上的所有input字段,我得到一个结果,但只有那个匹配的特定的一个。 假设我只填写country ,它什么也没有返回,因为其余的都是空的,但是我希望返回所有在德国的行。 我希望我清楚地expression自己。

Mongoose如何实现嵌套查询

我的数据库模式是 collections – 问题 { "_id" : ObjectId("588f79d7535415ceb7a026bd"), "type" : 1, "question" : "Who is the best bastman from the following:", "options" : [ "Sachin Tendulkar", "Rahul Dravid" ] } 收集 – 答案 { "questionId" : "588f79d7535415ceb7a026bd", "answers" : [ { "userId" : [ 102, 101, 105 ] } ] } 我创build了一个API来获取所有的问题,并为每个“_Id”我需要访问集合 – 答案和检索对应于该questionId的答案。 我怎么能做到这一点? […]

Mean.js不工作。 无法连接到MongoDB

情况: 我下载了这个版本库: https : //github.com/meanjs/mean 遵循并执行所有的指示。 没有$ npm start ,得到以下错误: 错误: Could not connect to MongoDB! { MongoError: failed to connect to server [localhost:27017] on first connect PS:我确实安装了Mongodb,并检查它是否与$ mongod一起工作。 编辑: 完整的错误消息,如果我做$ npm start : + Important warning: config.domain is empty. It should be set to the fully qualified domain of the app. Could not connect […]

如何在对话中显示两种不同模式之间的关系

问题是我有两个不同的Schema可以代替Conversation模型中的用户属性,我怎么能代表这个。 它可能是Student谁messaged或User发送消息,请注意学生和用户是不同的模型/架构。 var mongoose = require('mongoose'); var schema = mongoose.Schema({ message: { type: String, required: true }, user: { type: ObjectId, ref: 'User' /* I want a Student to also be a ref */ } }, { timestamps: true }); var model = mongoose.model('Conversation', schema); module.exports = { model, schema }; 我该如何更好地表示或编写此架构/模型?

将MongoDB集合迭代到帕格

我试图向帕格显示一个MongoDB员工集合。 我知道这与第一个“数据”对象有关。 我不知道如何呈现数组内的数据。 MongoDB集合: { "data":[ { "active":true, "userName":"example", "employeeDetails":{ "personalDetails":{ "firstName":"Dennis", "lastName":"Glover", "emailAddress":"example@example.com" } } }, { "active": false, "userName": example2, "employeeDetails": { "personalDetails": { "firstName": "Ben", "lastName": "Dover", "emailAddress": "example2@example.com" } } }, ] } performance: MongoClient.connect(url, function(err, db) { if (err) { console.log('Unable to connect to the Server', err); } else { […]

键值对在JavaScript中

在MongoDb中应用filter 我需要在embedded式文档中应用mongoDb中的filter,所以我该如何进行查询 例: var query = { _id:userId, 'match.Id':matchId, 'match.userId':userId1 } 现在我想应用filter让我们假设 情况1:我的查询应该是这样的 var query = { _id:userId, 'match.Id':matchId, } 情况2: var query = { _id:userId, 'match.userId':userId1 } 可以有很多这样的情况 所以我的问题是如何使这个查询对象在node.js / JavaScript 我的工作:我可以在对象中创build多个键,但是如下创build键不起作用 var query={} query._id:userId // works query.'match.userId':matchId // error query.match.userId:matchId //error 下面的代码尝试得到所需的输出,但它带有方括号,但types的ARR是对象 var arr = []; arr[ 'key3.abc' ] = "value3"; arr[ 'key2.abc' […]

在loopback和mongo中同样的“find”查询在不同的服务器上有不同的行为

我想在一个回环模型JS文件中进行查询。 它非常简单,如下所示: //isAdmin function: gets a boolean if a given userProfileId is an admin or not. Userprofile.isAdmin = function(userProfileId, cb) { let role = app.models.Role; let rolemapping = app.models.RoleMapping; let filter = { "where": { "name": "admin" }, "fields": ["id"] }; role.findOne(filter, function(err, instance) { let filter2 = { "where": { "roleId": instance.id , "principalId": […]