Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在documentDB中按子字符串搜索_C#_Search_Sql Like_Azure Cosmosdb - Fatal编程技术网

C# 在documentDB中按子字符串搜索

C# 在documentDB中按子字符串搜索,c#,search,sql-like,azure-cosmosdb,C#,Search,Sql Like,Azure Cosmosdb,这是示例文档DB文档 我想获取所有在一个或多个科目中失败的文档 我找到了类似的东西 SELECT * FROM students s JOIN c IN s.subjects WHERE c.result = "pass" 我想用c代码检索 { "id": "0066a253-f042-4213-b06e-65b1ea1e49aa", "name": "Sunny", "rollNo": 123, "class": "2nd", "section": "B",

这是示例文档DB文档

我想获取所有在一个或多个科目中失败的文档

我找到了类似的东西

SELECT 
    *
FROM students s 
JOIN c IN s.subjects 
WHERE c.result = "pass"
我想用c代码检索

{
  "id": "0066a253-f042-4213-b06e-65b1ea1e49aa",
  "name": "Sunny",
  "rollNo": 123,
  "class": "2nd",
  "section": "B",
  "Department": {
    "name": "CSE",
    "id": "cse",
    "subjects": [
      {
        "id": "subject-1",
        "marksObtained": 66,
        "maxMarks": 100,
        "result": "pass"
      },
      {
        "id": "subject-2",
        "marksObtained": 56,
        "maxMarks": 75,
        "result": "pass"
      },
      {
        "id": "subject-3",
        "marksObtained": 22,
        "maxMarks": 100,
        "result": "fail"
      },
      {
        "id": "subject-4",
        "marksObtained": 36,
        "maxMarks": 50,
        "result": "pass"
      },
      {
        "id": "subject-5",
        "marksObtained": 16,
        "maxMarks": 100,
        "result": "fail"
      }
    ]
  },
  "Type": "Student"
}
我试过这样做

var result = client.CreateDocumentQuery<dynamic>(dc.SelfLink, "SELECT s.id as id,s.Name as Name,s.Age as Age,s.section as section,s.subjects as subjects FROM students s JOIN c IN s.subjects WHERE c.result = \"pass\"").ToList(); 

List<Student> students = new List<Student>(); 
foreach(var std in result) 
{ 
     students.Add((Student)std); 
} 
上面这样的代码是我得到的,但即使我给出pa或pas或pass或p或ass,我也应该得到一些我需要的SQL中类似的功能

有什么解决办法吗?? 我需要SQL中类似的功能来从documentDB检索数据更新:截至,documentDB添加了一组字符串函数,包括STARTSWITH、ENDSWITH和CONTAINS。请注意,这些函数中的大多数不会在索引上运行,而是会强制扫描

尚未在DocumentDB中实现SQL之类的通配符“%”


请在上发表您的意见并投票支持此功能。

最近几个月推出了一些新功能。对于您的特殊情况,我认为您可以使用:

WHERE STARTSWITH(c.result, "p")

您的努力在哪里?来自client.CreateDocumentQuerydc.SelfLink中的f,其中f.subjects[0]。结果==通过选择f;var result=client.CreateDocumentQuerydc.SelfLink,选择s.id作为id,s.Name作为Name,s.Age作为Age,s.section作为section,s.subjects作为来自学生的科目s在s.subjects中加入c,其中c.result=\pass\.ToList;学生名单=新名单;结果{students.AddStudentstd;}中的foreachvar std类似于上面的内容是我得到的代码,但即使我给出了pa或pass或pass或p或ass,或者我也应该得到一些我需要的类似于SQL的功能。不要将其添加为注释,没有人会像这样阅读它。在问题中添加它。谢谢@mybirthname我是新来的我可以使用contains吗??请共享有关此更新的链接选择food.id,food.description,food.tags,food.foodGroup FROM food where starts with food.id,03;它不起作用。有什么想法吗?