产品表: { _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}})