【发布时间】:2020-04-15 09:32:40
【问题描述】:
我正在尝试在 mongoDB 中使用 forEach 循环编写查询。
我想要在 forEach 循环中编写查询的输出,但没有得到任何内部查询的输出。
任何人都可以指导如何编写这样的查询。
以下是我所写的
此查询获取当前行的前一条记录,并带有一些条件。
努力实现以下目标
在给定条件下查询整个集合,即{"INTENT_IDENTIFIED":true}
循环遍历所有选定的文档
获取上述结果中每个文档的上一个文档
上一个文档的条件是_id小于当前_id
而USER_ID 也是一样的。
db.bothistories.find({"INTENT_IDENTIFIED":true}).limit(100).forEach(function(doc) {
print(doc._id)
print(doc.USER_ID)
db.bothistories.find({$and:[{"_id":{$lt: doc._id}},{"USER_ID":doc.USER_ID}]},{"USER_ID":1,"DATA":1}).limit(1)
})
我得到了两个打印的值。
【问题讨论】:
-
你想在这里做什么?你在两个 find() 中查询同一个集合..
-
但我正在从每个列表中获取 vales
-
在一个查询中合并两个 find() 条件,我认为这样会更有效
-
@GaurangDhorda 我需要找到foreach查询结果每一行的前一行。如果可以在同一查询中完成,请发布答案或提供您的建议。
-
要在
forEach中打印查询的输出 - 将.forEach( printjson )添加到findquery 的末尾(在limit(1)之后)。
标签: mongodb