如何使用sails蓝图查询嵌入式文档

时间:2014-09-09 05:45:55

标签: json mongodb sails.js embedded-documents

Mongo描述了一个嵌入式查询,如this

db.inventory.find(
    {
        producer:
        {
            company: 'ABC123',
            address: '123 Street'
        }
    }
)

因此,我希望嵌入式文档的sails蓝图查询看起来像这样:

http://myserver.com/blueprint/inventory?where={"producer":{"company":"ABC123","address":"123 Street"}}

但是返回一个空数组。如何使用蓝图查询嵌入文档?

1 个答案:

答案 0 :(得分:1)

蓝图无法做到这一点。事实上,没有办法用通用的Waterline方法来做到这一点。这揭示了两个重点:

  1. 蓝图不是一种替代所有业务逻辑的解决方案。它们旨在公开一个简单的API。如果您需要更多内容,写一个custom controller action既有趣又轻松。如果您将其放入 InventoryController.js 并将其命名为find,那么 / inventory 端点会自动调用它。

  2. 水线是一种ORM(与所有ORM一样),用于在不同数据库之间提供统一的界面,这意味着它必须在支持特定数据库功能(如嵌入式文档)方面进行权衡。如果您需要在MongoDB中查询嵌入式文档,可以使用模型的.native()方法来执行此操作。