0

I am new in MongoDB and NodeJS development. I have read all what I find and probably am searching wrong. Please help me!

I have this db - Name: Shop, Documents: categories, products

This is db.collection('categories');

{
"_id" : { "$oid" : "5172d1daffdd81f3234d5f88" },
        "categories" : [ {
        "categories" : [ {
        "id" : "mens-clothing-suits",
                "image" : "categories/mens-clothing-suits.jpg",
                "name" : "Suits",
                "page_description" : "Shop Men's suits for business or pleasure. Enjoy from a variety of different styles and cuts.",
                "page_title" : "Mens Suits for Business and Casual",
                "parent_category_id" : "mens-clothing",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-clothing-jackets",
                "image" : "categories/mens-clothing-sportscoats.png",
                "name" : "Jackets & Coats",
                "page_description" : "Shop Men's Jackets, Coats & Outerwear. Classic outdoor-tested garments with traditional styling details that provide comfort, insulation and ease of movement, whatever the weather.",
                "page_title" : "Men's Jackets Including Jackets & Blazzers",
                "parent_category_id" : "mens-clothing",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-clothing-dress-shirts",
                "image" : "categories/mens-clothing-dress-shirts.jpg",
                "name" : "Dress Shirts",
                "page_description" : "Shop Men's dress shirts in a variety of colors and styles including striped, button down, non-iron & more", "page_title" : "Men's Dress Shirts including Striped, Button Down, Non-Iron & More",
                "parent_category_id" : "mens-clothing",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-clothing-shorts",
                "image" : "categories/mens-clothing-shorts.png",
                "name" : "Shorts", "page_description" : "Shop Men's spring shorts in cotton. Variety of different fits.",
                "page_title" : "Men's Spring Shorts",
                "parent_category_id" : "mens-clothing",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-clothing-pants",
                "image" : "categories/mens-clothing-pants.png",
                "name" : "Pants",
                "page_description" : "Shop Men's Trousers. Practical, easy-to-wear styles wherever you're headed. Check out famous rugged, long-lasting trousers, jeans, cargo pants and more.",
                "page_title" : "Men's Pants Including Khakis, Cargos, Trousers, Jeans & More",
                "parent_category_id" : "mens-clothing",
                "c_showInMenu" : true
        } ],
                "id" : "mens-clothing",
                "image" : "categories/mens-clothing-accessories.jpg",
                "name" : "Clothing",
                "page_description" : "Shop Men's Clothing. Relaxed, timeless classics you can rely on; from denim to corduroys and sweaters to shirts. Huge range of contemporary colours and eco-aware designs: great casualwear.",
                "page_title" : "Mens Clothing Including Suits, Tops, Bottoms & More",
                "parent_category_id" : "mens",
                "c_showInMenu" : true
        },
        {
        "categories" : [ {
        "id" : "mens-accessories-ties",
                "image" : "categories/mens-accessories-ties.png",
                "name" : "Ties", "page_description" : "Shop Mens's Ties for all occasions including business or casual.",
                "page_title" : "Men's Casual and Business Ties",
                "parent_category_id" : "mens-accessories",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-accessories-gloves",
                "name" : "Gloves",
                "page_description" : "Shop Men'sGloves. Versatile, commuter, boot, oxford, deer and resolve gloves. All with famous long-lasting quality.",
                "page_title" : "Men's Gloves",
                "parent_category_id" : "mens-accessories",
                "c_showInMenu" : true
        },
        {
        "id" : "mens-accessories-luggage",
                "image" : "categories/mens-accessories-luggage.jpg",
                "name" : "Luggage",
                "page_description" : "Shop Men's Wheeled Luggage. Versatile, rugged suitcases, baggage, holdalls and shoulder bags. All with famous long-lasting quality.",
                "page_title" : "Men's Wheeled Luggage",
                "parent_category_id" : "mens-accessories",
                "c_showInMenu" : true
        } ],
                "id" : "mens-accessories",
                "name" : "Accessories",
                "page_description" : "Shop mens accessories including belts, wallets. gloves, hats, watches, luggage & more.",
                "page_title" : "Men's Accessories Belts, Wallets. Gloves, Hats, Watches, Luggage & More",
                "parent_category_id" : "mens",
                "c_showInMenu" : true
        } ],
        "id" : "mens",
        "name" : "Mens",
        "page_description" : "Men's range. Hard-wearing boots, jackets and clothing for unbeatable comfort day in, day out. Practical, easy-to-wear styles wherever you're headed.",
        "page_title" : "Men's Footwear, Outerwear, Clothing & Accessories",
        "parent_category_id" : "root",
        "c_showInMenu" : true
}

and for NodeJS I have ->

exports.index = function(req, res) {
	var _         = require("underscore");
	// var parseSchema = require('mongodb-schema');
	var mdbClient = require('mongodb').MongoClient;

mdbClient.connect("mongodb://localhost:27017/shop", function(err, db) {
		var collection = db.collection('categories');

		collection.find().toArray(function(err, items) {
			res.render("index", { 
			// 	// Underscore.js lib
			 	_     : _, 
				
			// 	// Template data
                title : "Hello World!",
			 	items : items
			 });


			db.close();
		});
});
	console.dir("Called findOne!");
};

I need to set in variables:

var categories = //all categories for example: Mens , Womens

var subCategories = //All subcategories for example: Clothing and etc.

What is the right method to reach each variable?

Thank You!

1 Answer 1

1

Demo of a Field:

db.getCollection('categories').find(
       {"categories.0.categories.image":"categories/mens-clothing-suits.jpg"},
       {"categories.categories.image":1});

Similarly you can do this for other fields

Sign up to request clarification or add additional context in comments.

3 Comments

Thank You! This contributed to another part, but did not help in putting all the content of what I need This is my code to get all categories and similar for subCategories, but i need to make it more reliable collection.find().toArray(function(err, items) { items.forEach(function (item, index) { category[index] = { id: item.id, name: item.name, image: item.image, page_desc: item.page_description, page_title: item.page_title } }); });
for subcategories: collection.find().toArray(function(err, items) { items.forEach(function (item, index_x) { item.categories.forEach(function (subItem, index_y){ subCategory[index_x [index_y]] = subItem.name; }); });
Can anyone explained me some problem In " header.ejs " i have an img tag whit this code. <img src= <%- "../public/images/" + value.image %> > why the images is not display? This is the correct address!!! Only in Mozilla Firefox, if i change "../public/images/" to "..\public/images/" the images will be displayed

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.