Stored procedures Cosmos DB:getContext().getCollection().queryDocuments不返回SP中的项

Stored procedures Cosmos DB:getContext().getCollection().queryDocuments不返回SP中的项,stored-procedures,azure-cosmosdb,Stored Procedures,Azure Cosmosdb,我刚开始使用Cosmos DB,我很困惑为什么我不能使用简单的SP查询返回任何文档 这就是我所做的: 已使用分区键“/id”创建Cosmos DB数据库 创建“系列”目录 创建了两个项目: 运行查询“SELECT*FROM c”将按预期返回两条记录 但是,bellow SP中的queryDocuments方法总是为提要检索零长度。为什么两件东西都没有退回 非常感谢你的帮助 Cosmos db中的SP基于分区密钥工作,这意味着将返回分区内的所有文档,而不是跨分区的文档。您可以按照下面的屏幕

我刚开始使用Cosmos DB,我很困惑为什么我不能使用简单的SP查询返回任何文档

这就是我所做的:

  • 已使用分区键“/id”创建Cosmos DB数据库
  • 创建“系列”目录
  • 创建了两个项目:
  • 运行查询“SELECT*FROM c”将按预期返回两条记录
  • 但是,bellow SP中的queryDocuments方法总是为提要检索零长度。为什么两件东西都没有退回

非常感谢你的帮助

Cosmos db中的SP基于分区密钥工作,这意味着将返回分区内的所有文档,而不是跨分区的文档。您可以按照下面的屏幕截图执行SP。根据官方文档“对于分区容器,在执行存储过程时,必须在请求选项中提供分区键值。存储过程的作用域始终为分区键值。具有不同分区键值的项对存储过程不可见。这也适用于触发器。”


存储过程的作用域始终是分区键。您应该提供分区键值,如:'AndersenFamily'。您可以参考这个。谢谢,@SteveZhao!这就解释了!谢谢你,@AnuragSharma MSFT,这就解释了!
    {
        "id": "AndersenFamily",
        "lastName": "Andersen",
        "parents": [
            {
                "firstName": "Thomas"
            },
            {
                "firstName": "Mary Kay"
            }
        ],
        "children": [
            {
                "firstName": "Henriette Thaulow",
                "gender": "female",
                "grade": 5,
                "pets": [
                    {
                        "givenName": "Fluffy"
                    }
                ]
            }
        ],
        "address": {
            "state": "WA",
            "county": "King",
            "city": "Seattle"
        },
        "creationDate": 1431620472,
        "isRegistered": true
    },
    {
        "id": "WakefieldFamily",
        "parents": [
            {
                "familyName": "Wakefield",
                "givenName": "Robin"
            },
            {
                "familyName": "Miller",
                "givenName": "Ben"
            }
        ],
        "children": [
            {
                "familyName": "Merriam",
                "givenName": "Jesse",
                "gender": "female",
                "grade": 1,
                "pets": [
                    {
                        "givenName": "Goofy"
                    },
                    {
                        "givenName": "Shadow"
                    }
                ]
            },
            {
                "familyName": "Miller",
                "givenName": "Lisa",
                "gender": "female",
                "grade": 8
            }
        ],
        "address": {
            "state": "NY",
            "county": "Manhattan",
            "city": "NY"
        },
        "creationDate": 1431620462,
        "isRegistered": false
    }
    // SAMPLE STORED PROCEDURE
    function sample(prefix) {
        // Query documents and take 1st item.
        var isAccepted = getContext().getCollection().queryDocuments(
            getContext().getCollection().getSelfLink(),
            'SELECT * FROM root r',
        function (err, feed, options) {
            if (err) throw err;
    
            console.log("Feed length: " + feed.length);
    
            // Check the feed and if empty, set the body to 'no docs found', 
            // else take 1st element from feed
            if (!feed || !feed.length) {
                var response = getContext().getResponse();
                response.setBody('no docs found');
            }
            else {
                var response = getContext().getResponse();
                var body = { prefix: prefix, feed: feed[0] };
                response.setBody(JSON.stringify(body));
            }
        });
    
        if (!isAccepted) throw new Error('The query was not accepted by the server.');
    }