0

Mongo 描述了这样的嵌入式查询:

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

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

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

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

4

1 回答 1

1

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

  1. 蓝图并非旨在替代所有业务逻辑的解决方案。它们旨在公开一个简单的 API。如果您需要更多内容,编写自定义控制器操作既有趣又简单。如果你把它放在InventoryController.js中并命名它find,那么你的/inventory端点会自动调用它。

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

于 2014-09-09T19:40:24.323 回答