gpt4 book ai didi

MongoDB .Net driver 2.0 Builders Filter(字段到数组比较)

转载 作者:可可西里 更新时间:2023-11-01 10:28:48 26 4
gpt4 key购买 nike

我需要从“followingList.username”中获取所有用户名并与帖子的用户名,如果有任何匹配需要将该用户名添加到数组中。

Person Model
{
"_id" : ObjectId("554f20f5c90d3c7ed42303e1"),
"username" : "fatihyildizhan",
"followingList" : [
{
"_id" : ObjectId("55505b6ca515860cbcf7901d"),
"username" : "gumusluk",
"avatar" : "avatar.png"
},
{
"_id" : ObjectId("58505b6ca515860cbcf7901d"),
"username" : "yalikavak",
"avatar" : "avatar.png"
},
{
"_id" : ObjectId("58305b6ca515860cbcf7901d"),
"username" : "gumbet",
"avatar" : "avatar.png"
}
]
}

Post Model
{
"_id" : ObjectId("554f2df2a388R4b425b89833"),
"username" : "yalikavak",
"category" : "Summer",
"text" : "blue voyage with yacht"
},
{
"_id" : ObjectId("554f2df2a388P4b425b89833"),
"username" : "yalikavak",
"category" : "Winter",
"text" : "is coming ..."
},
{
"_id" : ObjectId("554f2df2a388K4b425b89833"),
"username" : "gumbet",
"category" : "Fall",
"text" : "there are many trees"
}

我尝试获取如下结果代码块,但无法弄明白。

var filter = Builders<Post>.Filter.AnyEq("username", usernameList);
var result = collection.Find(filter).ToListAsync().Result;

你能帮我解决这个问题吗?谢谢。

最佳答案

逻辑颠倒了,你需要的是一个$in query如果我正确理解您的用例:

var filter = Builders<Post>.Filter.In("username", usernameList);
var result = collection.Find(filter).ToListAsync().Result;

在您的例子中,username 是一个简单的字段,您希望与候选人列表进行匹配。 AnyEq 用于检查复杂对象的嵌入列表中是否至少有一个匹配标准。这仍然转化为 MongoDB 中的简单查询,但需要“触及”需要更复杂语法的对象。

关于MongoDB .Net driver 2.0 Builders Filter(字段到数组比较),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com