【发布时间】:2025-12-14 21:30:01
【问题描述】:
所以想象一下,我在 Mongoose 的一个对象中有一个数组。例如,一个帐户有许多别名:
别名:["a", "b", "c", "d"]
现在,假设我想查找所有别名为“a”或“c”的帐户。
您将如何在 mongoose/mongodb 中执行此操作?我知道您可以使用 $regex 来查找具有“a”或“c”之一的帐户,但是您如何为任意匹配列表执行此操作?
【问题讨论】:
所以想象一下,我在 Mongoose 的一个对象中有一个数组。例如,一个帐户有许多别名:
别名:["a", "b", "c", "d"]
现在,假设我想查找所有别名为“a”或“c”的帐户。
您将如何在 mongoose/mongodb 中执行此操作?我知道您可以使用 $regex 来查找具有“a”或“c”之一的帐户,但是您如何为任意匹配列表执行此操作?
【问题讨论】:
您可以使用$in 运算符
db.accounts.find({aliases: {$in: ["a", "c"]}});
【讨论】:
"a" AND "c"?
我用c#驱动写linq,
IMongoQuery mongoQuery = Query<YourEntity>.Where(a => a.Aliases.Contains("a") || a.Aliases.Contains("c"));
var str1 = mongoQuery.ToString();
这是司机的翻译
{ "$or" : [{ "别名" : "a" }, { "别名" : "c" }] }
【讨论】:
$in 运算符更简单。