搜索MongoDB条目的正确方法'_id'在节点中
Correct way to search for MongoDB entries by '_id' in Node
我在Node
中使用MongoDb
(作为MongoJS
的一部分)。这是MongoJS的文档。
我正试图在Node中根据条目的_id
字段进行调用。当从控制台使用香草MongoDB
时,我可以做:
db.products.find({"_id":ObjectId("51d151c6b918a71d170000c7")})
并且它正确地返回了我的条目。然而,当我在Node中做同样的事情时,比如:
db.products.find({"_id": ObjectId("51d151c6b918a71d170000c7")}, function (err, record) {
// Do stuff
});
我得到ReferenceError: ObjectId is not defined
。
进行此操作的正确协议是什么?
在使用ObjectId函数之前需要它:
var ObjectId = require('mongodb').ObjectID;
如果您使用的是MongoJS,您可以执行以下操作:
var ObjectId = mongojs.ObjectId;
然后,
db.users.find({"_id": ObjectId(id)}, function(err, user){...}
如果你使用猫鼬,你可以试试这个:
var mongoose = require('mongoose')
usersSchema = mongoose.model('users'),
mongoose.Types.ObjectId("<object_id>")
usersSchema.find({"_id": mongoose.Types.ObjectId("<object_id>")}, function (err, record) {
// Do stuff
});
您还可以销毁ObjectId和MongoClient以优化代码并使其更具可读性。
const { MongoClient, ObjectId } = require('mongodb');
在使用猫鼬时,这里有另一种使用objectId的方法。
// at the top of the file
const Mongoose = require('mongoose')
const ObjectId = Mongoose.Types.ObjectId;
// when using mongo to collect data
Mongoose.model('users', userSchema).findOne({ _id:
ObjectId('xyz') }, function (err, user) {
console.log(user)
return handle(req, res)
})
})
相关文章:
- 通过jstree中的Id获取节点
- 如何在d3.js图库中基于nodes id连接边和节点
- 如何从data.args中获取新建节点的id
- 节点.js设置套接字 ID
- 使用 jQuery 将自定义 ID 添加到克隆的 HTML 节点
- AlloyUI图表生成器:按ID而不是名称连接节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- 剑道ui树视图dragend获取节点id
- Arbor js - 将鼠标移到节点上时,将节点 ID 显示为文本
- 按 id 名称检查元素是否具有子节点
- 如何在节点.js中按 id 获取元素
- 如何在不依赖 javascript 中的 id、类或内容的情况下查找和检索节点位置
- js 树中的选定节点 ID
- 获取使用每个循环时每个父节点的 ID
- 使用“attr”与“animate”使用节点ID更改Raphael对象
- 当我在 Dojo 中左键单击树行(树节点)时,如何从对象存储中获取 ID
- 如何通过按 id 注册但未在任何 DOM 节点中引用来删除 dojo 小部件
- 从 ul 获取最后一个子节点 li,其中子节点的 id 不是指定值
- 会话节点.js + 护照.js + Redis,按 user.id 存储会话
- 在节点中使用计数器集合.js递增 ID 字段