我正在使用Xamarin为我的数据库构建一个应用程序MongoDB Realm. Realm允许您使用基于字符串的查询语言,并公开了一个Filter函数.他们链接this NSPerdicate备忘单来帮助指导您如何编写查询.然而,我无法获得“IN”查询工作.
在我的代码中,我目前有这个类,我试图查询:
public class Person : RealmObject
{
[PrimaryKey]
public int Id { get; set; }
public string Name { get; set; }
}
字符串
我的查询看起来像这样:
var foundPersons = realm.All<Person>().Filter("Id IN { 1,2 }");
型
运行此函数时,将给予异常:Realms.RealmException:“无效 predicate :”Id IN {1,2}“:语法错误,意外的”错误“
我也试过不带花括号的查询:
var foundPersons = realm.All<Person>().Filter("Id IN 1,2");
型
这将给予以下错误:Realms.RealmException:“Invalid predicate:”Id IN 1,2“:syntax error,unexpected”,“expecting end of file”
我尝试过的其他方法是使用[]括号和使用引号,但它们都给出给予错误。
我如何以正确的方式编写这个查询,以便它将返回所有ID为1或2的Person?
2条答案
按热度按时间oyt4ldly1#
目前还不支持-请参阅Github上的this discussion。唯一的解决方法是将字符串 predicate 生成为多个相等语句与
OR
组合:字符串
disbfnqx2#
我设法使过滤器到最新的
Realm.Net
中的list
字段个字符
https://www.mongodb.com/docs/realm/realm-query-language/#query-formats