所以,也许我已经理解了一些错误,因为我来自SQL世界:我有一个商品集合:
_id: "0234weasq43rq",
title: "Panasonic",
descr: "blah blah",
price: 132,
specifications {
weight: 135,
color: "black",
type: "LCD",
diagonal: 50
}
_id: "0234weasq43rq",
title: "Samsung Galaxy Tab",
descr: "blah blah",
price: 132,
specifications {
weight: 135,
color: "white",
standard: "GSM",
wifi: "Yes"
}
我可以针对不同类别的商品(例如手机和电脑)制定不同的规格吗?如果不是所有商品都有“对角线”规格,是否有使用goods.find(specifications { diagonal: 50 })
等查询查找商品的问题?
谢谢!
答案 0 :(得分:2)
是的,即使在同一个集合中,您的文档也可能具有完全不同的结构。在您的示例中,查询将仅返回对角线= 50的商品,并省略任何没有对角线定义的文档(或者已定义的文档但显然不是50)
答案 1 :(得分:1)
我可以为不同类别的商品保留不同的规格 (例如手机和电脑)?
相同的集合可以包含具有不同结构的文档。因此,对于您而言,您可以针对不同类别的商品保留不同的规格。
使用查询等查找商品是否有任何问题 goods.find(规格{diagonal:50}),如果不是所有商品都有 一个“对角线”规范?
不,绝对。可能对您有用的一件事是sparse索引用于未在所有文档中呈现的字段(例如,对角字段)。该索引不包括没有此字段的文档。