You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose中通过_id查找用户并验证钱包是否含BTC

问题分析与解决方法

你的代码不正确,原因是$in: ['btc']的匹配逻辑和你的数据结构不匹配:wallet是包含对象的数组,而非字符串数组,$in会尝试匹配数组中是否存在等于"btc"的元素,显然无法命中你的数据。

正确实现方法

要验证用户钱包中是否存在btc密钥,你可以使用MongoDB的$exists操作符,结合嵌套对象的点语法来查询:

const id = "6515a3cb181eafcdd26460ce";
const user = await users.findOne({ 
  _id: id, 
  "wallet.btc": { $exists: true } 
});

// 根据查询结果判断
if (user) {
  console.log("该用户钱包存在BTC密钥");
} else {
  console.log("该用户钱包不存在BTC密钥");
}

补充说明

  • "wallet.btc"是MongoDB的嵌套字段查询语法,用于检查wallet数组中是否有至少一个对象包含btc键
  • 如果需要进一步验证btc的有效值(比如是否大于0),可以追加条件:
    const user = await users.findOne({ 
      _id: id, 
      "wallet.btc": { $exists: true, $gt: 0 } 
    });
    

内容的提问来源于stack exchange,提问作者Alpha Andrianarivo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:00:04