使用NodeJS从MongoDB获取数据

时间:2016-06-02 10:17:32

标签: node.js mongodb

我是MongoDB和NodeJS开发的新手。我已经阅读了所有我发现的东西,可能是我错了。 请帮帮我!

我有这个数据库 - 名称:商店,文件:类别,产品

这是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
}




对于NodeJS,我有 - >



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!");
};




我需要设置变量:

var categories = //所有类别例如:男士,女士

var subCategories = //所有子类别例如:服装等

到达每个变量的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

场地演示:

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

同样,您可以为其他字段执行此操作