天道酬勤,学无止境

mongoose

How to get sub document only in mongoose?

问题 我正在尝试从具有以下架构的数组中仅提取子文档: const UserSchema = Schema({ name: { type: String },library:[{ story:{type: Schema.Types.ObjectId,ref: 'Story'} }], }); 我尝试使用: module.exports.getUserStories = function(userId, callback){ User.findOne({_id: userId },callback) .select('library.story') }; 它给出了这个结果: { "_id": "5949615072e15d2b34fa8f9d", "library": [ { "story": "592ae46cf2a0ba2b208cb092" }, { "story": "592ae608df26d80790092fe9" }, { "story": "592ae46cf2a0ba2b208cb092" } ] } 但我期望得到的只是这个: [ { "story": "592ae46cf2a0ba2b208cb092" }, { "story": "592ae608df26d80790092fe9" }, { "story": "592ae46cf2a0ba2b208cb092"

2022-05-17 05:20:17    分类:技术分享    json   node.js   mongoose

Returning specific fields with mongoose

问题 我正在尝试完成一些非常容易但仍然失败的事情。 我想要做的是,当我在服务器上收到get请求时,我想返回所有文档,但只返回填充的特定字段。 我的架构如下 var clientSchema = new Schema({ name:{ type: String, required: true }, phone:{ type: String, required: true }, email:{ type: String, required: true }, address: { type: String, required: false } }); var orderDetailsSchema = new Schema({ //isn't added to frontend confirmed:{ type: Boolean, required: true, default: false }, service:{ type: String, required: true }, delivery:{ type: String, required: false }, payment:{ type: String, required: false }, status:{ type: String, required: true, default: "new order" }, }); var

2022-05-17 01:20:03    分类:技术分享    javascript   node.js   mongodb   mongoose   mongoose-schema

why mongoose queries dos not work when put inside promise function

问题 我的代码如下所示: checkAndCreateUser(customer_id, email_id).then(result => { console.log("result is " + result); }); var checkAndCreateUser = function (custom_id, email) { return new Promise(function (resolve, reject) { if ((!custom_id) && (custom_id.trim() == '')) { var creatUser = new user(); // creatUser._id = user_id; creatUser.ph_no = ph_no; creatUser.email_id = email; console.log("fn works"); user.findOne({ 'email_id': email }, function (err, user) { console.log("db test"); if (!user) { creatUser.save(function (err, userInfo) { if (err) { reject("no id found"); } else { customer_id = userInfo

2022-05-16 22:32:14    分类:技术分享    node.js   mongoose

how to get only subdocument from document query in mongoose

问题 我试图通过 node.js 中的猫鼬从整个文档中获取子文档。 我的数据库架构如下: var mongoose = require('mongoose'); var Schema = mongoose.Schema; // var Items = require('./items.js'); var Items = new Schema({ no_of_times_ordered:Number, item_name:String, item_tag:String, item_category:String, item_stock:Number, item_price:Number, item_img:String, item_illustrations:[String], item_liked:Boolean, no_of_likes:Number },{ versionKey: false }); var FoodTruckSchema = new Schema({ foodtruck_name:String, foodtruck_location:String, foodtruck_rating:Number, foodtruck_tag:String, foodtruck_timing:String, foodtruck_cusine:String, foodtruck

2022-05-16 06:28:23    分类:技术分享    mongoose   mongoose-schema

How filter array of objects elements mongoose?

问题 我有以下架构: User: { age: Number, name: String, comments: { added: Date, body: String } } 我需要获得所有用户,添加的评论大于自定义日期。 示例数据: [{ "name": "John", "age: 21, "comments": [{ "added": 21-01-12, "body": "blabla1" }, { "added": 21-02-12, "body": "blabla2" }, { "added": 21-01-10, "body": "blabla3" }] }, { "name": "Bruno", "age: 33, "comments": [{ "added": 21-01-10, "body": "ololo1" }, { "added": 21-02-12, "body": "ololo2" }, { "added": 21-01-09, "body": "ololo3" }] }] 我需要所有评论都大于01-01-11 1 日的所有用户,但没有少于该日期的评论。 预期结果: { "name": "John", "age: 21, "comments": [{ "added": 21-01-12, "body": "blabla1" }, { "added": 21

2022-05-16 03:33:24    分类:技术分享    node.js   mongodb   mongoose   mongodb-query   aggregation-framework

mongodb schema.createIndex is not a function

问题 所以我试图在我的 messageSchema 中创建一个索引 var messageSchema = new Schema({ senderName : String, content : String, reply : String, date: { type: Date, default: Date.now() }, room : { type: Schema.Types.ObjectId } }); // 这是尝试创建索引的方法 messageSchema.createIndex({content : "text"}, function(err, data){ console.log(err); console.log(data); }); //也试过了 messageSchema.createIndex({content : "text"}); //也试过这个 messageSchema.createIndex({"content" : "text"}); 我不断得到的错误是 TypeError: messageSchema.createIndex is not a function 谁能帮我这个。 回答1 看来您正在使用猫鼬。 在引擎盖下, 每个模式映射到一个 MongoDB 集合并定义该集合中文档的形状。 在 mongo shell 中, collection

2022-05-16 02:42:15    分类:技术分享    node.js   mongodb   mongoose

Search for an object in an array Mongoose

问题 假设我有一个名为部门的模型。 我有一个房间阵列,每个房间都有一个病人(有一个病人)。 我想让患者的患者编号等于请求 ID。 有没有办法做到这一点? var department = mongoose.model('department', { departmentName: String, rooms: [ { roomNumber: String, width: Number, height: Number, posX: Number, posY: Number, sanitary: Boolean, childcareArea: Boolean, lounge: Boolean, patient: { patientnr: Number, firstname: String, lastname: String, reasonOfHospitalization: String, dateOfHospitalization: Date, expectedDateOfDischarge: Date, vegetarian: Boolean, needsHelp: Boolean, comments: String, department: String, roomNumber: String, nextTreatment: { type: String

2022-05-15 19:52:04    分类:技术分享    node.js   mongodb   angular   mongoose   mongodb-query

Get one element from an array of objects that's part of one document (mongoose)

问题 我有一个包含Friends的架构。 Friends 是一个数组,其中每个元素都是一个包含 id、gender 和 emoji 的对象。 var userSchema = new Schema({ id: { type: String, unique: true, required: true }, gender: String, Friends: [{ id: String gender: String emoji: String }] }); 在下面的代码中,我正在访问一个包含 Friends 数组的文档,并使用distinct指定该搜索,这样它只显示文档的 Friends 数组。 我只需要访问该数组中包含指定 id 的一个元素。 不是像在代码中那样在查询之后过滤该数组,有没有办法只从查询中获取元素? 换句话说,是否有一个额外的功能来区分或某种允许这样做的猫鼬运算符? User.findOne().distinct('Friends', { id: req.body.myId }).then(function(myDoc) { var friendAtt = myDoc.filter(function(obj) { return obj.id == req.body.id })[0] }) 回答1 多亏了 bertrand,我才能够发现答案在于“ Projection ”。

2022-05-15 18:46:19    分类:技术分享    node.js   mongodb   mongoose   mongodb-query

$inc follower count, or should I use an aggregate to track them?

问题 我正在通过一次 12 个块的无限滚动加载产品。 有时,我可能想按他们有多少追随者对这些进行排序。 以下是我如何跟踪每个产品有多少关注者。 由于 16mb 的数据上限,关注在单独的集合中,并且关注的数量应该是无限的。 遵循架构: var FollowSchema = new mongoose.Schema({ user: { type: mongoose.Schema.ObjectId, ref: 'User' }, product: { type: mongoose.Schema.ObjectId, ref: 'Product' }, timestamp: { type: Date, default: Date.now } }); 遵循架构的产品: var ProductSchema = new mongoose.Schema({ name: { type: String, unique: true, required: true }, followers: { type: Number, default: 0 } }); 每当用户关注/取消关注产品时,我都会运行此功能: ProductSchema.statics.updateFollowers = function (productId, val) { return Product

2022-05-15 15:42:10    分类:技术分享    javascript   node.js   mongodb   mongoose

MongoDB query with multiple conditions

问题 我有多个文档的数据: { "_id" : ObjectId("57b68dbbc19c0bd86d62e486"), "empId" : "1" "type" : "WebUser", "city" : "Pune" } { "_id" : ObjectId("57b68dbbc19c0bd86d62e487"), "empId" : "2" "type" : "Admin", "city" : "Mumbai" } { "_id" : ObjectId("57b68dbbc19c0bd86d62e488"), "empId" : "3" "type" : "Admin", "city" : "Pune" } { "_id" : ObjectId("57b68dbbc19c0bd86d62e489"), "empId" : "4" "type" : "User", "city" : "Mumbai" } 我想根据我的多个条件获取数据: condition 1:- {"type" : "WebUser", "city" : "Pune"} condition 2:- {"type" : "WebUser", "city" : "Pune"} & {"type" : "User", "city" : "Mumbai"} 运行条件 1 时我想要以下结果: { "_id"

2022-05-15 00:57:04    分类:技术分享    mongodb   mongoose