[英]How do you utilize $and, $or, $exists in the same Mongoose.js query?
我需要查詢沒有到期[到期](不存在)或到期日期在2/2/14之后的帳戶的文檔。 為此,我的mongodb查詢是:
db.events.find({ _account: ObjectId("XXXX"),
$or: [
{expires: {$gt: ISODate('2014-02-02')}},
{expires: {$exists: false}}
]
});
我遇到了正確的貓鼬.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)進行語法奇偶校驗的驅動程序中。 如果您喜歡這種方式並且無法找到節點引用,則可以在Java中查找QueryBuilder使用示例。 對於mongoose,有一些值得一看的查詢文檔 。
動態語言有一種更原生的方法來定義用於查詢等的對象結構。因此大多數人更喜歡使用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.