在一个集合中,我存储了一些数据,映射到在其他地方生成的移动设备 UID。例如:
{
devices: {
'b2e4fe52d4ab57fd55fa': { model: 'aPhone', number: 1111111 },
'b2e4fe52d4ab57fd55fb': { model: 'bPhone', number: 2222222 },
'b2e4fe52d4ab57fd55fc': { model: 'cPhone', number: 3333333 }
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用 UID 的情况下检索代表一个设备的对象?
对于仅在模型或数字上使用 $elemMatch 的数组来说,这很容易,但似乎它的使用仅限于数组,文档是否有模拟运算符?
anh*_*hlc -1
使用$where,但如果由于性能原因您有大量数据,则不建议使用 $where。
db.collection.find(
{ $where: function() {
var input = { model: 'aPhone', number: 1111111 };
if(this.devices != undefined){
for(var key in this.devices){
d = this.devices[key];
if (d.model==input.model && d.number==input.number) return true;
}
}
return false;
}})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |