gpt4 book ai didi

javascript - 您如何在同一个 Mongoose.js 查询中使用 $and、$or、$exists?

转载 作者:可可西里 更新时间:2023-11-01 09:08:57 25 4
gpt4 key购买 nike

我需要查询没有过期[expires](不存在)或过期日期在 2/2/14 之后的帐户的文档。为此,我的 mongodb 查询是:

db.events.find({ _account: ObjectId("XXXX"), 
$or: [
{expires: {$gt: ISODate('2014-02-02')}},
{expires: {$exists: false}}
]
});

我在使用正确的 mongoose .or() .and() .exists() 链接时遇到问题,我该如何将其转换为 Mongoose?

谢谢!

最佳答案

使用与 shell 中或多或少相同的语法应该没有错。它仍然是 javascript,只是没有 shell 助手。

Events.find({ _account: "XXXX", 
$or: [
{expires: {$gt: Date(2014,02,02)}},
{expires: {$exists: false }}
}, function(err, events) {
if (err) // TODO
// do something with events
});

或者,您正在使用其他助手来构建查询:

var query = Events.find({ _account: "XXXX" });

query.or(
{expires: {$gt: Date(2014,02,02)}},
{expires: {$exists: false }}
);

query.exec(function(err, events) {
if (err) // TODO
// do something with events
});

或其他组合。这些“助手”主要存在于驱动程序中,用于与其他非动态语言(如 Java)进行语法奇偶校验。您可以查找 QueryBuilder 的示例如果您更喜欢这种方式并且找不到 Node 引用,请在 Java 中使用。对于 Mongoose ,有 documentation对于值得一看的查询。

动态语言有一种更原生的方法来定义用于查询等的对象结构。因此大多数人更喜欢使用它们。

关于javascript - 您如何在同一个 Mongoose.js 查询中使用 $and、$or、$exists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com