MongoDB 和 NoRM - 根据参数列表查询集合
我需要根据参数列表查询集合。 例如我的模型是:
public class Product
{
string id{get;set;}
string title{get;set;}
List<string> tags{get;set;}
DateTime createDate{get;set;}
DbReference<User> owner{get;set;}
}
public class User
{
string id{get;set;}
...other properties...
}
我需要查询指定用户拥有的所有产品并按创建日期排序。
例如:
GetProducts(List<string> ownerIDs)
{
//query
}
如果可能的话,我需要在一个查询中执行此操作,而不是在 foreach 内执行。如果需要,我可以更改我的模型
I need to query a collection based on a list of parameters.
For example my model is:
public class Product
{
string id{get;set;}
string title{get;set;}
List<string> tags{get;set;}
DateTime createDate{get;set;}
DbReference<User> owner{get;set;}
}
public class User
{
string id{get;set;}
...other properties...
}
I need to query for all products owned by specified users and sorted by creationDate.
For example:
GetProducts(List<string> ownerIDs)
{
//query
}
I need to do it in one query if possible not inside foreach. I can change my model if needed
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
听起来您正在寻找 $in 标识符。您可以像这样查询产品:
只需将 javascript 数组 [ownerId1, ...] 替换为您自己的所有者数组。
请注意:我猜这个查询不是很有效。我对 MongoDB 中的 DBRefs 不太感兴趣,它本质上是向非关系数据库添加关系。我建议简单地将ownerID 直接存储在产品对象中并基于此进行查询。
It sounds like you are looking for the $in identifier. You could query products like so:
Just replace that javascript array [ownerId1, ...] with your own array of owners.
As a note: I would guess this query is not very efficient. I haven't had much luck with DBRefs in MongoDB, which essentially adds relations to a non-relational database. I would suggest simply storing the ownerID directly in the product object and querying based on that.
使用 LINQ 的解决方案是创建一个用户 ID 数组,然后对它们执行 .Contains 操作,如下所示:
The solution using LINQ is making an array of user IDs and then do .Contains on them like that: