1

所以,也许我理解错了,因为我来自 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 })如果不是所有商品都具有“对角线”规范,那么使用查询查找商品是否有任何问题?

谢谢!

4

2 回答 2

2

是的,即使在同一个集合中,您的文档也可能具有完全不同的结构。在您的示例中,查询将仅返回对角线 = 50 的商品,并省略任何未定义对角线的文档(或已定义但显然不是 50 的文档)

于 2012-02-28T08:43:00.337 回答
1

我可以为不同类别的商品(例如手机和电脑)保留不同的规格吗?

同一个集合可以有不同结构的文档。因此,对于您的情况,您可以为不同类别的商品保留不同的规格。

如果不是所有商品都具有“对角线”规范,那么使用诸如商品.find(规范{对角线:50})之类的查询查找商品是否有任何麻烦?

不,绝对。可能对您有用的一件事是 未在所有文档中显示的字段的稀疏索引(例如对角线字段)。此索引将不包括没有此字段的文档。

于 2012-02-28T09:36:09.283 回答