簡體   English   中英

你如何在同一個Mongoose.js查詢中使用$和$或$?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM