gpt4 book ai didi

node.js - Mongoose OR 运算符与 _id

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:07 26 4
gpt4 key购买 nike

我正在使用 Mongoose 。

当我这样做时,效果很好:

userModel.find({  $or:[
{first_name:"Bob"},
{last_name: "Marley"}
]
}, function(err, result){
if(err) //do something;

console.log(result);
});

但是当我使用 _id 作为表达式之一时,它只查找 _id 并且不关心其他表达式:

userModel.find({  $or:[
{_id: "56b426aa1d6c7a642ab1a52d"},
{last_name: "Marley"}
]
}, function(err, result){
if(err) //do something;

console.log(result);
});

回顾:第一个示例将查找名字 Bob 或姓氏 Marley。但第二个示例只能找到我提供的确切 id 或 null。

我做错了什么?

最佳答案

MongoDB _id 字段是一种特殊类型的字段,需要按如下方式初始化,然后才能在查询中使用:

new Mongoose.Types.ObjectId("56b426aa1d6c7a642ab1a52d")

var ObjectId = require('mongoose').Types.ObjectId;
new ObjectId("56b426aa1d6c7a642ab1a52d");

关于node.js - Mongoose OR 运算符与 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35217012/

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