作者:nissunshine | 来源:互联网 | 2024-12-21 09:44
以下是示例数据结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [ { 'group_name': '分组一', 'friends': [ {'name': '姓名一', 'phone': '110'}, {'name': '姓名二', 'phone': '120'}, ] }, { 'group_name': '分组二', 'friends': [ {'name': '姓名一', 'phone': '119'}, {'name': '姓名二', 'phone': '114'}, ] } ] |
假设我们需要在 '分组一' 下查找 friends 中姓名或手机号为 '110' 的数据。以下是一个可能的查询方法:
1 2 3 4 5 6 7 8 9 10 11 | db_contact.find({ 'group_name': groupName, '$or': [{ 'friends': { '$elemMatch': { '$or': [{ 'phone': new RegExp(this.searchGroupValue, 'i') }, { 'name': new RegExp(this.searchGroupValue, 'i') }] } } }] }, function (err, docs) { console.log(docs); if (err === null && docs.length > 0) { // 处理结果 } else { console.error(err); } }); |
上述代码中,我们使用了 $elemMatch
操作符来确保同时匹配数组中的单个元素,从而实现更精确的嵌套模糊搜索。
如果遇到问题或有其他需求,请参考 NeDB 的官方文档或社区资源,以获取更多帮助。