【问题标题】:How to write a function to fetch the data with same key but different value?如何编写一个函数来获取具有相同键但不同值的数据?
【发布时间】:2021-10-16 07:56:53
【问题描述】:

我想从具有相同键但不同值的 mongo DB 中读取文档。

假设存在具有scenario 字段但值不同的文档

ex - 文档 1 具有场景:'something1',文档 2 具有场景:'something2'...

样品 O/P

 {{_id=6114ce6514796e5fbe316be2, App=PRO_WH_DS, Other Voucher Code=, Date and Time Performed=, SnApp Error=, Done=, Unit Tax Quoted=$25.16, AQ perDayNetPrice=, Test #=WH POS 2.A, Scenario=WH POS 2.A}} 

{{_id=6114ce6514796e5fbe316bde, App=PRO_WH_DS, Other Voucher Code=, Date and Time Performed=, SnApp Error=, Done=, Unit Tax Quoted=$26.51, AQ perDayNetPrice=, Gold "Upgrade Tax"=, Gold Source=, , Scenario=WH HERA}}

【问题讨论】:

  • 你是在问如何找到所有包含某个字段的文档?
  • 是的,就像我想过滤所有具有场景字段的文档(这在所有文档中都很常见,但值不同)。
  • 这能回答你的问题吗? Check that Field Exists with MongoDB
  • _id : 6114ce6514796e5fbe316bda App : : "" : "" SnApp Ticket Value : "" SnApp Ticket Tax : "" AQ netPrice : "" Status : "Complete" 执行环境 : "STAGE" Order ID : “VGVXVKRD”黄金“卖家净价”:“”测试编号:“WH HERA 1.F”场景:“WH HERA 1.F”} _id:6114ce6614796e5fbe316be4 应用程序:SnApp 票值:“”SnApp 票税:“” AQ netPrice : "" 状态 : "Complete" 执行环境 : "STAGE" 订单 ID : "KJWT62312828" Gold "Net Price to Seller" : "" 测试 # : "WH HERA 2.A" 场景 : "WH HERA 2.A "}
  • 如何获取场景常见但价值不同的地方

标签: node.js mongodb


【解决方案1】:

根据我们在 cmets 中的讨论,听起来您想要匹配 Scenario 的值等于两个值之一的文档。 { Scenario: { $eq: nameoflist1, nameoflist2 } } 不起作用,因为它不是有效的过滤器。这是您想要使用$in 运算符的时候。

The section I linked in the comments 显示了一个和你一样的场景。接下来,我们会遇到这样的查询:

db.price_check_validation.find( { Scenario: { $in: ['WH HERA 2.A', 'WH HERA 2.B'] } } )

【讨论】:

  • 是的,根据以下查询的建议进行更正 async function finddata (client, l1, l2) { const cursor =client.db ('snapp_transactions').collection ('price_check_validation')。 find ({ 场景: { $in: [ 'l1', 'l2' ] } });我传递的值来自另一个函数 await finddata (client, 'WH HERA 2.A', 'WH HERA 1.F') ;不确定会出错,我的方法是否正确?
  • 您的方法不正确,因为您想要名为 l1l2 的变量的值,但是您传递的两个字符串的值是 "l1""l2"。您需要删除过滤器文档中l1l2周围的引号。
  • 异步函数 finddata (client, l1, l2) { const cursor =client.db ('snapp_transactions').collection ('price_check_validation').find ({ Scenario: { $in: [ l1, l2 ] } }); } 但它显示错误 - { 错误:在 Function.Module._resolveFilename (module.js:548:15) at Function.Module._load (module.js:475: 25) 在 Module.require (module.js:597:17) 在 require (internal/module.js:11:18)
  • 这似乎是一个与 NPM 包 mongoose 相关的单独问题。搜索该错误会引发其他堆栈溢出问题。答案here 可能会对您有所帮助。
  • 是的,我已经将路径更改为 bson = require('../browser_build/bson');但它没有显示任何 O/p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 2018-02-21
相关资源
最近更新 更多