MongoDb的一个实例

来源:互联网 发布:国泰安数据库介绍 编辑:程序博客网 时间:2024/06/07 05:35
产品表:{_id: new ObjectId("4c4b1476238d3b4dd5003981"),slug:"wheel-barrow-9092",sku: "9092",name:"Extra Large Wheel Barrow",description: "Heavy duty wheelbarrow...",details: {weight: 47,weight_units: "lbs",model_num: 4039283402,manufacturer: "Acme",color: "Green"},total_reviews: 4,average_review: 4.5,pricing: {retail: 589700,sale:489700,},price_history: [{retail: 529700,sale: 429700,start: new Date(2010, 4, 1),end: new Date(2010, 4, 8)},{retail: 529700,sale: 529700,start: new Date(2010, 4, 9),end: new Date(2010, 4, 16)},],category_ids: [new ObjectId("6a5b1476238d3b4dd5000048"),new ObjectId("6a5b1476238d3b4dd5000049")],main_cat_id: new ObjectId("6a5b1476238d3b4dd5000048"),tags:["tools", "gardening", "soil"],}db.products.ensureIndex({slug: 1}, {unique: true})
<pre name="code" class="java">类目表doc ={ _id: new ObjectId("6a5b1476238d3b4dd5000048"),slug:"gardening-tools",ancestors: [{ name: "Home",_id: new ObjectId("8b87fb1476238d3b4dd500003"),slug: "home"},{ name: "Outdoors",_id: new ObjectId("9a9fb1476238d3b4dd5000001"),slug: "outdoors"}],parent_id: new ObjectId("9a9fb1476238d3b4dd5000001"),name:"Gardening Tools",description: "Gardening gadgets galore!",}


订单表doc ={ _id: ObjectId("6a5b1476238d3b4dd5000048")user_id: ObjectId("4c4b1476238d3b4dd5000001")state: "CART",line_items: [{ _id: ObjectId("4c4b1476238d3b4dd5003981"),sku: "9092",name: "Extra Large Wheel Barrow",quantity: 1,pricing: {retail: 5897,sale: 4897,}},{ _id: ObjectId("4c4b1476238d3b4dd5003981"),sku: "10027",name: "Rubberized Work Glove, Black",quantity: 2,pricing: {retail: 1499,sale: 1299}}],shipping_address: {street: "588 5th Street",city:"Brooklyn",state: "NY",zip: 11215},sub_total: 6196}

用户表{ _id: new ObjectId("4c4b1476238d3b4dd5000001"),username: "kbanker",email: "kylebanker@gmail.com",first_name: "Kyle",last_name: "Banker",hashed_password: "bd1cfa194c3a603e7186780824b04419",addresses: [{name: "home",street: "588 5th Street",city:"Brooklyn",state: "NY",zip: 11215},{name: "work",street: "1 E. 23rd Street",city:"New York",state: "NY",zip: 10010}],payment_methods: [{name: "VISA",last_four: 2127,crypted_number: "43f6ba1dfda6b8106dc7",expiration_date: new Date(2014, 4)}]}

应用1: 查询某地区的用户,使用邮政编码进行查询

>db.user.find({ “address.zip”:{“$lt”:12334,”gt”:11123}})

 

应用2: 查询买过某商品的用户,并显示用户的详细信息

user_ids = db.db.order.find(

{

'line_items.sku':"9092",                                      

purchase_date: {'$gt': new Date(2009, 0,1)}

},

{user_id: 1,_id: 0}

).toArray().map(

function(doc) {

return doc['_id']

}

)

users = db.users.find({_id:{$in:user_ids}})



0 0