1

我试图找到让 MongoDb 在所有文档字段中查找特定值的最佳方法。例如,如果我有两个文件:

{
    field1: "value1"
    field2: "value2"
}

{
    field3: "value3"
    field4: "value1"
}

并且查询字符串是“value1”,两个文档都将被返回。

如果在 MongoDb 中没有办法做到这一点,那么在数据库或代码级别实现它的最佳策略是什么?我试图在 C# 中创建一个 getter,它遍历所有映射实体的属性并返回一个数组并将这个数组存储在数据库中,但 IMO 它是低效且丑陋的解决方案。

4

1 回答 1

1

在 MongoDB 中没有办法直接做到这一点。

拥有一组无限的字段名称可能表明您的架构需要重新设计。您是否考虑过将动态字段名称改为嵌入对象的值?如:

fields: [{name: "field1", value: "value1"}, {name: "field2", value: "value2"}]

然后您的查询将如下所示:

db.coll.find({'fields.value': 'value1'});
于 2013-05-03T19:25:45.840 回答