现在的位置: 首页 > 综合 > 正文

MongoDb的一个实例

2018年05月20日 ⁄ 综合 ⁄ 共 2358字 ⁄ 字号 评论关闭
产品表:
{
	_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}})

抱歉!评论已关闭.